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 @   车到山前必然堵  阅读(610)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示