为什么在Unity 3d中,最大化游戏窗口中某些游戏对象的旋转速度比普通游戏窗口中(最大化处于关闭状态)更快?



当我单击播放按钮时,我开始注意到旋转速度比游戏对象的正常游戏窗口中快得多。此外,玩家跳跃在最大化视图中更强。 游戏 : 3d 我感谢您的帮助。 这是代码:

{
transform.Rotate(0, 0.07f, 0);
}

因为你的代码完全依赖于帧速率!这意味着如果您以每秒 60 帧的速度运行,则每秒大约4.2度。但是,如果由于某种原因您突然以每秒 120 帧的速度运行,您的旋转速度会提高一倍!

这不仅会发生在编辑器本身中,尤其是在构建的应用程序中,该应用程序很可能在以后运行在不同强度的设备上。

您始终希望使用Time.deltaTime(自最后一帧以来经过的时间)来确保您的值不是value per frame而是value per second

transform.Rotate(0, 5f * Time.deltaTime, 0);

当然,您将需要根据需要调整值,而5现在实际上意味着5 degrees per second无论帧速率如何。

(Time.deltaTime仍然依赖于Time.timeScale,所以在某些用例中,你甚至需要Time.unscaledDeltaTime顾名思义,它忽略了时间刻度并使用实际秒)


在您的特定情况下,最有可能的是,在最大化的游戏视图中,您可以每秒渲染更多帧,因为性能完全集中在游戏视图上,并且跳过所有检查器、场景视图(可能是最强的影响)、层次结构视图等重新绘制开销。

最新更新