1.缓存transform
若经常访问一个组件,需要将其缓存。
2.少用GameObject.Find
会遍历所有的GameObject,会根据名字返回相符的对象。
当游戏内对象很多时,会很好使。
3.缓存Camera.main
内部是通过GameObject,FindWithTag查找tag的。
经常用可将其缓存。
4.比较tag
使用 tag == "xx" 会有额外的GC
使用 CompareTag("xx") 不会产生GC
5.自定义Updater
Unity在执行Update之前会做一些列检查。(遍历所有有update的脚本,是否可以调用,准备去调用,参数是否可用等等)
所以只有一个Update,管理一个List提供注册接口,通过这个Update调用其他的。
6.Animator.Set
使用字符串触发,会被hash成一个整数。
如果需要频繁触发,提前进行hash。Animator.StringToHash(“xxx”)
7.缓存 YieldInstruction
不用每次都 yield return new WaitForSecond(1f);
省去了 new 的开销。