我有一个一直在上升的物体。我希望我的物体首先以一定的速度上升然后以另一个速度上升(比如说,5秒后)。我只是在使用
transform.Translate (Vector3.up * speed, Space.World);
但它只是一直以同样的速度上升,我不想要。
答案 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