一 标准
渲染 15ms 左右
脚本 10ms 左右
其他(主要是物理,动画) 8ms 左右
二 评判瓶颈
查看主要通过unity的profile工具。如果瓶颈在GPU上,profile上会有 waitforpresent 占比 或者通过 Adreno屏蔽掉openGl 来查看帧率是否有提升。
然后在看占比最高的一项是什么引起的。进行相对应的优化。
三 常用手段
1. 开启多线程渲染。
2. 减少GC。NGUI是贡献GC大户,可以通过profile进行逐一排查,优化。减少GetComponent AddComponent次数。对象多进行复用。能用struct就用struct(项目推广比较困难)
3. 去掉无用log。
4. 多进行缓存, 减少文件IO次数
5. update函数 最好只在基础层面出现。外围逻辑不要有update 函数,需要也用Invoke 或者自己实现的timer。
6. 减少 skinmesh的数量 尽量用meshRenderer 同屏数过多 通过骨骼序列帧代替skinmesh实现
7. 合并drawcall StaticBatch DymiticBatch
8. 粒子尽量不用 用的话 场景效果大的粒子加入 离屏不渲染