RhinoFreak 发表于 2022-1-26 10:08

Unity 游戏开发性能优化总结(持续更新)

图形效果

通用


网格合并;
共用材质;
减面或 使用LOD;
尽量考虑背面剔除;
摄像机


谨慎投射阴影
场景物体


动画不在屏幕内考虑停止更新
界面物体


动静分离界面;
看不到的界面用关闭来停止 Update 方法,如果需要频繁开闭,可使用 Alpha 为0来减少重加载的卡顿;
减少界面半透明重叠,以减少重绘;
代码使用

动态分配内存


Dictionary 的 key 使用枚举时,索引有 GC;
string 类型最好封装一套拼接工具以减少 GC,或是减少拼接情形,尤其是频繁拼接;
预分配内存


应尽量使用对象池来管理动态对象;
系统资源使用


集中在对性能要求较低的情形使用系统资源完成;
Unity Mono


MonoBehaviour 的消息尽量减少使用,有一定的性能;
搜索,遍历以及频繁访问的对象,缓存引用以提升性能,不过要记得及时引用;
杂项


Dictionary 用 TryGetValue 方法来判定性能会更好;
资源管理

已加载的资源管理


使用对象池循环复用;
控制好特效的生命周期,尤其是当特效播放完毕后;
资源加载管理


资源加载可根据体验动态拆分为预加载,延迟加载和即时加载三种模式
页: [1]
查看完整版本: Unity 游戏开发性能优化总结(持续更新)