Unity优化总览
CPU
GC
- 序列化与反序列化,如protobuff,json解析
- String的频繁构造,拼接,如ToString()会生成字符串,Object.name会返回拷贝
- 闭包和匿名函数,在闭包中调用外部变量时会创建临时class对象,匿名函数当做参数传入时,也会有内存开销
- 有开销的函数,如Camera.main等,缓存一下
- Transform只存局部坐标,旋转,没次获取和设置都有计算开销
IO操作,
UI
- Canvas重建,材质的重新创建,排序,Mesh重建等,建议全部动静分离
- 图集划分问题,图片尺寸要用POT尺寸
其他
- 粒子系统 -> 功能简化的简单子弹类
- 动画更新优化,放到子线程等
- GPU Instance
- 蒙皮计算 GPU skinning
- 物理 MeshCollider改为凸包
GPU
数据量
- 顶点数: LOD
- 纹理尺寸: 打开mipmap
- overdraw: 主要透明物体数量
Shader算法
- 数据精度
- 纹理数目
- 比较费的函数: grappass,for
内存
- Mesh的Read/Write选项(会存在双份数据)
- 纹理最大尺寸,压缩参数 (硬件支持的压缩,会以压缩格式进内存)
包大小
- 一个bug(长期未修复):场景中的物体prefab打成包,场景包中还会有一份资源,需要打成更细的包,比如贴图,就不会
其他
原文地址:https://www.cnblogs.com/Hichy/p/10083890.html