Time.deltaTime

Time.deltaTime

Time.deltaTime,字面意思是增量时间,官方API解释是完成上一帧所需要的时间(单位为秒)。我们直接Update函数中来打印下看它的值变化:

 

我们发现每帧打印出来的时间值在动态的变化着,这样看来,这个detatime就是完成一帧所需要的时间。如果我们将Time.deltatime放到FixedUpdate中,则打印出来的值是恒定的,正是FixedUpdate的更新频率0.02s。

 

 

回到我们先前用帧移动cube的代码,我们让帧移动距离distancePerFrame乘以Time.deltatime,如果distancePerFrame = 10的话,那就相当于告诉引擎:cube将以每秒10米来沿着z轴移动,这样最大的好处就是我们可以精确的控制位移量。

using UnityEngine;

public class MyCube : MonoBehaviour {
  public float distancePerFrame = 10;
 void Update () {
  float translation = distancePerFrame * Time.deltaTime;
        transform.Translate(0, 0, translation);
       }
}

我们再次运行场景,这次发现cube移动得很平滑了,这都是Time.deltatime的功劳。

posted @ 2022-12-23 14:27  车到山前必然堵  阅读(558)  评论(0编辑  收藏  举报