以不同的速度移动对象

时间:2016-09-13 14:40:32

标签: c# unity3d

我有一个一直在上升的物体。我希望我的物体首先以一定的速度上升然后以另一个速度上升(比如说,5秒后)。我只是在使用

transform.Translate (Vector3.up * speed, Space.World);

但它只是一直以同样的速度上升,我不想要。

1 个答案:

答案 0 :(得分:1)

你可以在5秒后改变速度。

你的课程看起来像这样:

public IEnumerator Start() {
    yield return new WaitForSeconds(5);
    speed *= 2;
}

public void Update() {
    transform.Translate(Vector3.up * speed * Time.deltaTime, Space.World);
}

* Time.deltaTime添加到翻译计算中非常重要,否则您的实际速度将因机器而异。

  

如果您在每个帧中添加或减去一个值,则应该与Time.deltaTime相乘。当你与Time.deltaTime相乘时,你基本上表达了:我希望每秒移动10米而不是每帧10米。

https://docs.unity3d.com/ScriptReference/Time-deltaTime.html