Unity3D 官方移动游戏优化指南6.项目配置

Posted Kaitiren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D 官方移动游戏优化指南6.项目配置相关的知识,希望对你有一定的参考价值。

有一些项目设置会影响移动端性能。

降低或禁用Accelerometer Frequency

Unity 每秒对移动端的加速度计进行几次池操作。如果在应用程序中不会使用,请将其禁用,或者降低其频率,从而提升性能。

如果在移动游戏中不会使用 Accelerometer Frequency,请务必将其禁用。

禁用不必要的 Player 或Quality 设置

在 Player 设置中,对不支持的平台禁用 Auto Graphics API,以便防止生成过多着色器变体。如果应用程序不支持,对较旧的 CPU 禁用 Target Architectures。

在 Quality 设置中,禁用不需要的质量级别。

禁用不必要的物理设置

如果游戏不使用物理设置,请取消选中 Auto Simulation 和 Auto Sync Transforms。否则它们会降低应用程序运行速度,却并无任何可见的好处。

选择正确的帧率

移动端项目必须在帧率和电池续航时间以及热节流之间获得平衡。不需要将设备限值推向 60 fps,可以折衷以 30 fps 运行。Unity 默认移动端为 30 fps。

您也可以通过 Application.targetFrameRate 在运行时动态调整帧率。例如,您甚至可以将缓慢或相对静止的场景降至 30 fps 以下,而将玩游戏时的 fps 设置保留为较高值。

避免使用过多层级

拆分层级!在层级视图中如果游戏对象不需要嵌套,请简化父子化。较少的层级关系将受益于多线程刷新场景中的变换 (Transform)。复杂层级关系会发生不必要的变换 (Transform) 计算以及更多垃圾收集开销。

请参阅优化层级关系和此 Unite 报告了解变换 (Transform) 的最佳实践。

变换一次,而非两次

另外,移动变换 (Transform) 时,使用 Transform.SetPositionAndRotation 可以一次就同时更新位置和旋转。这样可以避免两次修改变换(Transform)的开销。

如果需要在运行时初始化游戏对象,一项简单的优化是在初始化过程中父子化和重新定位 :

GameObject.Instantiate(prefab, parent); 
GameObject.Instantiate(prefab, parent, position, rotation);

有关 Object.Instantiate 的更多详细信息,请参阅脚本 API

假设Vsync 已启用

移动平台不渲染半帧。即使在编辑器中禁用 Vsync (Project Settings > Quality), Vsync 在硬件级别也处于启用状态。如果 GPU 无法足够快地刷新,将保持当前帧,从而有效降低每秒帧数。

以上是关于Unity3D 官方移动游戏优化指南6.项目配置的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D 官方移动游戏优化指南6.项目配置

Unity3D 官方移动游戏优化指南7.资源

Unity3D 官方移动游戏优化指南 摘要

Unity3D 官方移动游戏优化指南5.编程和代码架构

Unity3D 官方移动游戏优化指南5.编程和代码架构

Unity3D 官方移动游戏优化指南7.资源