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 的開銷。