提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、模型优化
1、能合并的使用网格合并,注意合并后顶点数不能太多,而且合并后体积不能太大,否则无法使用遮挡剔除。
2、使用尽量少的材质和骨骼,一般来说,角色的材质在2-3个,骨骼数量小于30个最好。
3、控制多边形数量,一般对于移动设备来说,每个网格300-1500个多边形即可,PC平台的合理范围是1500-4000。
4、不要使用MeshCollider!
5、使用LOD技术。
6、使用遮挡剔除。
7、使用动、静态批处理。
二、贴图优化
1、使用png或者tga格式的图片
2、贴图尺寸长宽小于1024,同时在保证质量的同时尽可能小。
3、建议生成Mipmap,虽然会增加一些应用程序的大小,但是在游戏运行时,系统会根据需求应用Mipmap来渲染,从而减少内存带宽。
4、检查Alpha,如果不需要使用Alpha通道,使用RGB的24位纹理来代替RGBA的32位纹理。
5、使用ECT格式的压缩。
三、UI优化
1、尽量减少UI层级的复杂度。
2、尽量不要使用透明UI,减少UI之间的覆盖关系。
3、不需要点击的UI取消Raycast Target属性。
4、动态UI和静态UI分离开来,因为Canvas上一个或多个元素变化时,会重新生成网格从而显示UI。
四、代码优化
1、减少使用SendMessage()和BroadcastMessage(),因为他们使用了反射,会造成更多的CPU开销,考虑使用事件和委托代替
2、不要频繁的Find物体。
3、缓存Transform,减少对Position和rotation的修改,尝试使用localposition和localrotation代替。
4、Camera.main的问题和Find类似,可以手动管理对相机的引用。
5、矢量直接加减比矢量的分量对应相加减要慢。
6、使用for循环而不是foreach。
7、使用Array而不是List,使用下标访问元素Array要比List快一点。
8、尽量避免过多使用Update和FixedUpdate