Unity CPU性能优化

一、渲染模块

  1. 降低DrawCall 通常GPU渲染很块,但CPU准备渲染数据、切换渲染状态更耗时。
  2. 简化资源 降低每帧渲染的三角形面片数。

二、UI模块

  1. NGUI中注意UIPanel.LateUpdate的优化。
  • 将动态元素和静态元素分离到不同的Panel中。
  • 让UI元素执照同步性进行划分。
  • 控制一个UIPanel中的元素数量,当子元素过多时,每次重构时Mesh生成的消耗巨大。

三、加载模块

  1. 场景卸载时的GameObjet的OnDestory回调,开销取决于该函数中的代码逻辑
  2. Resources.UnloadUnusedAssets 该函数在切换场景时Unity内部会自动调用一次。由于需要遍历查找所有对象,找到不活动的对象开销巨大。一般程序内不主动调用。
  3. 资源加载,每帧控制同时加载的对象数量。
  4. Instantiate实例化,在实例化之前化检查引用的资源是否加载和实例化,还有对对象脚本的初始化,以及初始Transform的计算,会比较耗时。建议控制每帧实例的数量。

四、代码逻辑

这部分可以结合Profiler来查找CPU耗时比较高的函数,进行排查和优化。