Unity 性能峰值达到 30 FPS

Unity performance spikes at 30 FPS

我正在使用 Unity 引擎为 iOS 开发一个简单的游戏。我正在使用 Application.targetFrameRate 为我的游戏设置目标 fps。当我将目标 fps 设置为 60 或 45 时,游戏 运行 在任何 iOS 设备上都能完美运行,但如果我将 targetFrameRate 设置为 30,游戏 运行 会出现尖峰和抖动。我不知道为什么会这样(30 fps 一定没问题)。

我将 Profiler 附加到我的 iPhone 并看到当 运行以 30 fps 的速度渲染时,一些帧以 200 fps 渲染,其他帧45-60 fps,这导致了可怕的性能峰值。但当 targetFrameRate 为 45 或 60 时,这不会发生。

我真的需要我的游戏以 30 fps 的速度 运行 以避免过热和节流。有人请帮助我!

我在猜测这里的根本问题,但是设置 targetFrameRate 通过 CPU 上的逻辑对帧进行节流,而设置 QualitySettings.vSyncCount 让 GPU 处理节流。 我的猜测是,设置 QualitySettings.vSyncCount = 2 应该会提供更流畅的体验。您也可以在 QualitySettings 中手动设置,而不是通过代码设置。