- 如何提高脚本运行效率?
- 降低算法的复杂度,了解常见的数据结构和算法
- 使用协程来避免多余的更新计算。
- 缓存耗时计算的中间值
- 缓存获取过的Componenet
- IMGUI只用与测试,发布时应该屏蔽
- 如何避免频繁的GC?
- 为快速产生和消灭的大量对象建立缓冲池(Pool)
- 当频繁拼凑字符串时,使用StringBuilder,而不是直接加减
- 一些数量众多,功能简单的小对象,使用结构体而非类
- 正确地使用foreach
- 如何降低DrawCall?
- 静态批处理
- 动态批处理
- 网格和材质的静态合并
- 网格和材质的动态合并
- 使用Instance LOD
- 如何优化顶点数和顶点计算?
- 尽可能在制作时控制顶点数目
- 移除那些不需要的硬边缘和UV缝接
- 使用Unity的LODGroup
- 调整视椎体裁剪Frustum culling
- 使用遮蔽剔除Occlusion culling
- 如何优化片元计算?
- 尽可能减少复杂的片元计算,如实时光照和实时阴影
- 使用光照贴图实现全局光照,light probes实现简易的动态阴影
- 使用更加高效的Shader(Unity上的Mobile版本)
- 减少半透明物体,并控制它们的渲染顺序,尽可能减少重绘(OverDraw)
-
如何降低物理计算?
- 尽可能少用刚体,不重要的物体可以自己写简易的模拟物理
- 尽可能减少直接的模型网格碰撞,应使用包围盒简易碰撞体替代
- 如果可以的话,增加fixedUpdate的运行间隔
- 使用高效的射线检测算法,并避免产生GC
unity优化策略
最新推荐文章于 2024-08-30 06:00:00 发布