1.减少循环调用

2.仅在改变时更新显示

3.增加代码更新的延迟

Time.frameCount:总帧数
3.1 分帧执行

4 在初始化的时候获取并缓存组件

5.避免昂贵的unity API调用
SendMessage/BroadcastMessage
基于运行时反射
建议仅用于原型开发
直接缓存需要访问的脚本组件对象 并调用其代码
若不知道事件接受者,可改用事件或代理
Find
建议 启动时缓存
Transform
每一次设置position或rotation 都会引发OnTransformChanged事件
并且会对其所有子节点也都这么做
建议
用Vector3缓存再拷贝
尽量用localposition和localrotation
6.update/lateupdate/其他事件函数
隐藏开销:
在引擎层和脚本层的每帧交互
每帧调用前的安全检查------检查GameObject有效性 多个对象开销会叠加
建议--- 移除空的update
7.向量运算
开方开销很大
Vertor3.magnitude
Vertor3.Distance()
建议-- vertor3.sqrMagnitude
8.Camera.main
网友评论