CPU优化
-
视锥体剔除,遮挡剔除
-
合理安排图片和材质,使用unity批处理( 减少DrawCall)
1.合并模型
2.合并纹理
3.打图集 -
脚本重构(小步快跑原则)
1.减少重复代码。
2.拆分过大的类或方法。
3.引入外观或抽象,减少类的耦合度,增加重用性。
4.修改类名或方法名,减少不必要的注释。
5.属性或方法适当的封装,减少不必要的公开。
6.添加适当的注释行文字,方便他人或自己阅读脚本。
7.使用“函数”或“全局变量”替换那些频繁创建的临时变量。
8.使用“状态机”或者“多态”替换条件表达式。
... -
脚本优化
1.避免频繁地Find、GetComponent,特别是Update中。
2.少使用临时变量,特别是在Update中。
3.使用for代替foreach,foreach使用迭代器会产生GC。特别是在Update中。
4.尽量不要频繁的Instantiate和Destroy,使用对象池技术。
5.使用内建的常量,例如Vector3.zero等
6.使用gameObject.CompareTag(“XXX”)而非gameObject.tag
7.避免频繁的使用Distance和magnitude等方法,需要开根号,较费性能。特别是Update中。
8.使用消耗更小的运算:例如1/5使用1*0.2来代替
9.避免在循环或者是Update中进行string字符串操作,因为string是常亮不可修改。
10.如果没有必要每帧都处理,则可以每隔几帧处理一次
11.Ref可以多使用,传参会多一次拷贝
12.Queue或者Stack来代替List
13.背景音乐选择mp3压缩格式,尽量不超过100s,尽量不要提前拖拽到场景内
14.减少物理引擎计算,尽量少加刚体。
15.释放不使用的资源内存。避免内存泄露
内存优化
- 模型定点优化
- UI优化
1.小图放大显示
2.九宫格
3.图片的复用
4.MipMaps
5.图片尺寸尽量保证2的n次幂
GPU优化
- 光照贴图
- 动态光探针,反射探针
- LOD
- MipMaps
网友评论