Unity 游戏开发性能优化总结(持续更新)
图形效果通用
网格合并;
共用材质;
减面或 使用LOD;
尽量考虑背面剔除;
摄像机
谨慎投射阴影
场景物体
动画不在屏幕内考虑停止更新
界面物体
动静分离界面;
看不到的界面用关闭来停止 Update 方法,如果需要频繁开闭,可使用 Alpha 为0来减少重加载的卡顿;
减少界面半透明重叠,以减少重绘;
代码使用
动态分配内存
Dictionary 的 key 使用枚举时,索引有 GC;
string 类型最好封装一套拼接工具以减少 GC,或是减少拼接情形,尤其是频繁拼接;
预分配内存
应尽量使用对象池来管理动态对象;
系统资源使用
集中在对性能要求较低的情形使用系统资源完成;
Unity Mono
MonoBehaviour 的消息尽量减少使用,有一定的性能;
搜索,遍历以及频繁访问的对象,缓存引用以提升性能,不过要记得及时引用;
杂项
Dictionary 用 TryGetValue 方法来判定性能会更好;
资源管理
已加载的资源管理
使用对象池循环复用;
控制好特效的生命周期,尤其是当特效播放完毕后;
资源加载管理
资源加载可根据体验动态拆分为预加载,延迟加载和即时加载三种模式
页:
[1]