unity3d Time.deltaTime个人理解

Posted drew

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d Time.deltaTime个人理解相关的知识,希望对你有一定的参考价值。

官方的解释是:静态只读属性,时间增量,渲染上一帧所花费的时间
看下面的代码

    /// <summary>
    /// 每帧刷新
    /// </summary>
    void Update()
    {
        transform.Translate(0, 0, Time.deltaTime * 10); //物体沿着自身Z轴方向,每秒移动物体10米运动
    }

这个方法所用的公式很简单:距离=时间*速度

我读官方解释的时候,有点迷惑,既然是渲染上一帧的时间,说明帧已经渲染完毕,那么计算出来的坐标,已经不能用在上一帧里面。这个过程是怎样的呢?从头设想:一开始,渲染的是初始帧,假设用的时间为t1,那么现实世界中物体移动的距离是t1*10,但是,我们只是看到了物体停留在初始位置。接着渲染第二帧,将刚才计算出来的坐标用于第二帧的渲染。假设渲染用时t2,那么现实世界中物体移动的距离是t2*10。但是,我们只是看到了物体经过时间t1后所在位置,而当前时间已经过了t1+t2。也就是说,我们看到的画面是滞后的

当然,以上纯属个人猜测,本人初学unity 3d,有不对的地方还待指正

以上是关于unity3d Time.deltaTime个人理解的主要内容,如果未能解决你的问题,请参考以下文章

关于Time.deltaTime的理解

关于Time.deltaTime的理解

unity3d 倒计时器 出现问题

unity3d 知识点随记

Time的各种变量unity3d

unity3d C#写发射子弹的程序怎么写