在手游的浪潮之巅,不仅是玩法和内容,大家都开始重视手游品质了。
有关于代码的优化整理了以下几点:
尽量避免代码中的任何字符串连接,因为这会给GC带来太多垃圾;
用简单的“for”循环代替“foreach”循环;
为所有游戏内的动态物体使用内存对象池,可以减少系统开销和内存碎片,复用对象实例,构建自己的内存管理模式,减少Instantiate和Destory;
尽量不使用LINQ命令,因为它们一般会分配中间缓器,而这很容易生成垃圾内存;
将引用本地缓存到元件中会减少每次在一个游戏对象中使用 “GetComponent” 获取一个元件引用的需求;
减少角色控制器移动命令的调用。移动角色控制器会同步发生,每次调用都会耗损较大的性能;
最小化碰撞检测请求(例如ray casts和sphere checks),尽量从每次检查中获得更多信息;
AI逻辑通常会生成大量物理查询,建议让AI更新循环设置低于图像更新循环,以减少CPU负荷;
要尽量减少Unity回调函数,哪怕是空函数也不要留着;(例如空的Update、FixedUpdate函数)
尽量少使用FindObjectsOfType函数,这个函数非常慢,尽量少用且一定不要在Update里调用;
千万一定要控制mono堆内存的大小;
这里介绍一款非常好用的Unity优化工具:http://wetest.qq.com/cube