【发布时间】:2017-07-05 00:12:45
【问题描述】:
我正在尝试移动一个对象,使其在视觉上以相同的速度移动,而不管帧速率波动如何。据我了解,我应该使用Time.deltaTime 来确定在Update 的每次迭代期间移动多远。我的Update 代码是这样的:
void Update()
{
this.rigidBody.MovePosition(this.transform.position + new Vector3(Time.deltaTime * 2f, 0, 0));
}
但是,当对象在屏幕上移动时,它会以更快和更慢的速度移动。如果我在每个Update(如下所示)期间移动它一个恒定的量,它似乎移动均匀。
void Update()
{
this.rigidBody.MovePosition(this.transform.position + new Vector3(0.02f, 0, 0));
}
我很困惑,因为我认为在每个Update 期间将对象移动恒定距离应该会导致抖动,因为它的速度会受到帧速率的影响。而且我认为使用Time.deltaTime 应该会导致与帧速率无关的运动的恒定速率。
我的Time.deltaTime 值在 0.002 到 0.17 之间变化,我也不明白,因为我有一个只有 2D 精灵的非常简单的场景,所以我不明白为什么差异如此之大。
【问题讨论】: