Unity3d有什么性能测试工具吗?想找出代码哪里有问题,优化游戏性能。
手游浪潮的顶端,不仅仅是玩法和内容,大家都开始关注手游的质量。
关于代码的优化,整理出以下几点:
尽量避免代码中有任何字符串连接,因为会给GC带来太多垃圾;
用简单的“for”循环替换“foreach”循环;
对游戏中的所有动态对象使用内存对象池,可以减少系统开销和内存碎片,重用对象实例,构建自己的内存管理模式,减少实例化和销毁;
尽量不要使用LINQ命令,因为它们一般会分配中间缓冲区,容易产生垃圾内存;
在组件中本地缓存引用将减少在游戏对象中使用“GetComponent”一次获取一个组件引用的需要;
减少角色控制器移动命令的调用。移动角色控制器会同步发生,每次调用都会消耗大量性能;
尽量减少碰撞检测请求(如光线投射和球体检查),并尝试从每次检查中获得更多信息;
AI逻辑通常会产生大量的物理查询,因此建议将AI更新周期设置为低于映像更新周期,以降低CPU负载。
尽量最小化Unity回调函数,哪怕是空函数。(例如,空更新、FixedUpdate函数)
尽可能少地使用FindObjectsOfType函数。这个功能很慢。尽量少用,永远不要在更新中调用。
一定要控制好mono堆内存的大小;
这里有一个非常有用的Unity优化工具:/cube。