unity---为什么用Time.deltaTime * speed 表示每秒移动的距离的理解

Time.deltaTime:代表时间增量,即从上一帧到当前帧消耗的时间, 这个值是动态变化的。

 

 

dt 表示 deltaTime.

假如 1s渲染10帧,沿X轴方向的移动速度 speed = 10m/s,

那么1s移动的距离为 distance = dt1 * speed + dt2 * speed + dt3 * speed + dt4 * speed + dt5 * speed + dt6 * speed + dt7 * speed + dt8 * speed + dt9  * speed + dt10 * speed

因为: dt1 + dt2 + dt3 + dt4 + dt5 + dt6 + dt7 + dt8 + dt9 + dt10 = 1s;

distance = (dt1 + dt2 + dt3 + dt4 + dt5 + dt6 + dt7 + dt8 + dt9 + dt10) * speed ;

所以:

void update(){

  transform.Translate(Time.deltaTime * speed , 0 , 0);

}

表示每秒移动10m;

 

你可能感兴趣的:(unity---为什么用Time.deltaTime * speed 表示每秒移动的距离的理解)