Component 相关优化
Transform
使用内建的数组,比如用 Vector3.zero 而不是 new Vector(0, 0, 0);
transform.localRotation = Quaternion.Euler(Vector3.zero);
transform.localScale =Vector3.one;
transform.localPosition =Vector3.one;


GameObject 相关优化
(脚本和本地引擎 C++代码之间的通信开销)
Gameobject 缓存:类似组件的缓存策略。
查找对象标签:if (go.CompareTag (“xxx”)来代替 if (go.tag == “xxx”),
因为内部循环调用对象分配的标签属性以及拷贝额外内存。
SendMessageUpwards、SendMessage:少用这两个函数,使用委托替代。
缓存组件:调用 GetComponent 函数耗性能,用变量先缓存到内存在使用, 有
必要时记得更新缓存组件。


NGUI 优化
优化数学运算,尽量采用整型代替浮点型,除法改乘法。

MonoBehaviour优化
如果没有相应的事件处理,删除对应的空函数
Update 优化
如果没必要每帧的逻辑,可以降低频率,方法如下:
Void Update(){if(Time.frameCount%6==0){DoSomething();}}
如果没必要每帧的逻辑,可以使用周期性的协程
如果没必要每帧的逻辑,可以使用
InvokeRepeating("DoSomeThing",0.5f,1.0f);
Gameobject 不可见时,设置 enabled = false 时,update 就会停止调用。
在 update 中尽量不要调用查找对象或组件方法如 FindByTag 或 Find 等等。可
以在 start 中先缓存下来,然后使用。

 

协程 WaitForSeconds 优化

了解到的一些小的知识点

相关文章:

  • 2022-12-23
  • 2021-06-10
  • 2021-07-24
  • 2021-05-10
  • 2022-01-14
  • 2022-01-14
  • 2021-06-28
猜你喜欢
  • 2021-09-06
  • 2021-10-02
  • 2022-12-23
  • 2021-11-30
  • 2022-01-02
  • 2021-05-10
相关资源
相似解决方案