Unity中的C#使用优化
避免装箱拆箱
所谓装箱就是把值类型变成引用类型,比较隐蔽的情况是:把值类型作为Object类型参数的时候,或者返回一个object对象的时候。
第一种:
Debug.Log(string.Format("content: {0}", 1));
非装箱版本:
Debug.Log(string.Format("content: {0}", 1.ToString()));
第二种。众所周知,协程IEnumerator返回的类型是object。当我们想跳过当前帧的时候有三种方式:
yield return null;
yield return 0;
yield return new WaitForFrame();
在这上面三种方法中,第一种为最佳。这是因为第二种需要把0装箱成一个Object,而第三种则需要new一个新对象。如果这个协程经常被调用(每帧),应该选择返回null。
避免高消耗API的频繁调用
包括:
GameObject.GetComponent<T>
GameObject.transform
GameObject.rigidBody
UnityEngine.Object == null
可以使用Assert来代替 </