Unity Profiler - PlayerLoop 在 Android 台设备上几乎 100%

Unity Profiler - PlayerLoop almost 100% on Android devices

我正在 Android 设备上检查 profiler performance 我的游戏。当我检查 CPU Usage 时,我注意到 PlayerLoop 为 99.6%,最大百分比消耗在 Semaphore.WaitForSignal 中,占 32.5%,其次是 PlayerConnection.Poll,占 27%。

有人可以解释一下是否有改进方法吗? PlayerLoop 99.6% 是“正常”还是过高?

以下截图来自 小米 5 Android 8

Profiler 中提供的百分比是 “此项对当前执行时间的贡献有多大” 而不是“您正在使用多少 CPU。

您感兴趣的是最大项的时间(以毫秒为单位)。东西是太多还是太少取决于你想要达到的帧率。

什么是播放器循环

播放器循环是您的游戏渲染 1 帧所花费的总时间。您可以在其中找到所有脚本、渲染和其他引擎功能。

什么是Semaphore.WaitForSignal

您的图形管道正在等待其他事情完成。通常,这意味着渲染需要一段时间才能完成,而图形管道的某些其他部分在渲染完成之前无法继续。

Player循环99.6%是否正常

是的,除非您在编辑器中,否则最好始终保持在 100% 左右。

播放器循环中正好是27ms

处理和渲染一帧所需的总时间。要达到 30fps in-game 你需要让所有帧都低于 33ms (1000ms/30fps)

您可以在此处找到更多信息:https://docs.unity3d.com/Manual/ProfilerCPU.html