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.项目配置的主要内容,如果未能解决你的问题,请参考以下文章