启动优化
异步加载资源 预加载(异步) 资源压缩 分帧加载 资源池缓存 对象池缓存
发热优化
DC (动静批处理, 网格合并 材质相同合批 )
GC (减少new 特别是Update内部的临时对象 全改为类成员 或 全局静态成员, 对象池缓存反复实例的物体 重复利用)
Overdraw(UGUI将透明为0的图 改为NoDrawOnlyRaycast组件 减少重叠)
CPU过载(大量纯数据计算 可开启新线程 并发批处理,Job Brust编译加速)
GPU过载(网格顶点数 面片数 遮罩剔除 LOD技术减少面片渲染 )
UGUI (动静分离,减少绘制开销)
CPU负载 每帧耗时 12-20ms
使用Profiler工具检查每个函数的耗时,GC,降低使用物理射线检测的频率
尽可能合批DC
GPU负载 每帧耗时 8-14ms
Application.targetFrameRate = 60; //IO 物理 渲染帧率60帧/秒
//仅将渲染帧率控制为6帧进行1次渲染,即渲染帧率=60/6=10帧/秒 但不会影响IO帧率(不影响用户输入,游戏物理 逻辑帧率)
OnDemandRendering.renderFrameInterval = 6;
尽可能将shader计算量降低,例如将输入shader的数据优化,数据量减少,在表现效果和性能之间做取舍。
网络 每秒2kb 会发热 降低频率 带宽
若游戏是单机,仍然有较高的网络性能,则可能是SDK问题,着重关注SDK的配置调整为优化配置
IO 降低频繁读取文件 输入
检查游戏逻辑是否有大量的从本地存储逻辑,降低频率 控制在某个节点进行
动态分辨率
设置Camera的targetTexture 调整
蒙皮网格优化
#1 GPU Skinning 加速骨骼动画
https://zhuanlan.zhihu.com/p/26200956
#2 mesh Animator
Unity - 大批量的蒙皮动画优化_mesh animator 2. .unitypackage-CSDN博客