0

    Unity增量时间Time.deltaTime详解

    2023.04.28 | admin | 147次围观

    一、时间增量

    时间增量:时间增加了多少。

    平时我们的时间都是按秒计的,所以我们习惯的时间增量就是1秒。

    设计一个场景:

    现在电脑时间不能修改,你在写作业,一共有语文,数学,英语。你做完一门作业,就去看一下时间。

    开始做语文:3:00

    语文做完:3:45

    时间增量:45分钟

    数学做完:4:45

    时间增量:60分钟

    英语做完5:00

    时间增量:15分钟

    时间增量就是和上一次看时间比,增加了多少

    二、unity里的时间增量

    理论上来说,我们Update是1秒看60次时间,所以每次时间增加0.02秒,所以如果我们把Time.deltaTime放到Update里,那么时间增量就是0.02秒(计算机每看一次时间,就增加了0.02秒)。

    很遗憾的是,我们计算机有时候会卡,或者配置不高电脑时间不能修改,会比较慢,那么可能 每次看时间,要增加0.05秒,也可能这次0.04秒,下次0.08秒。

    Unity增量时间Time.deltaTime详解

    三、时间增量的作用

    如果我让你吃苹果,吃苹果的规则是,每跑50米,吃一口,那么,如果你跑得快,苹果就很快吃完了,跑得慢,就要吃很久。

    用玩游戏来举例子:

    如果我给计算机说,你刷新一遍,发一个子弹,那么如果计算机好,刷的快,子弹发很多,但是如果我计算机慢,半天刷一次,那么子弹可能只发出去一两个,这样打游戏就很不公平,所以用时间算比较合适。

    如果用时间计算:

    我们设定一分钟发60个子弹,现在电脑开始运行,电脑A运行很流畅,一秒运行一遍,那么就60秒发60个,但电脑B运行比较卡,3秒才运行一遍,电脑一看,呀,三秒过去了,那我这次就发三颗,这样虽然电脑速度不一样,可一分钟都能发60个子弹。

    四、Time.deltaTime的代码解释

    为了方便理解,我们假如Update一秒刷新一次,如果我们没有Time.deltaTime

     void Update()
        {
            positon.x = positon.x + 0.1f  
        }

    上面代码就是,如果电脑是正常一秒刷新一次,那么一秒加0.1f,可是如果电脑速度很慢,电脑2秒才反应过来,那么我的电脑可能两秒才加0.1f

    现在我们加上Time.deltaTime

     void Update()
        {
            positon.x = positon.x + 0.1f *Time.deltaTime;       
        }

    上面代码就是,如果电脑是正常一秒刷新一次,那么一秒加0.1f,可是如果电脑速度很慢,电脑2秒才反应过来,那么我的电脑会0.1f*2秒,那么慢电脑如果两秒刷新,会把上次少刷的一秒也补上,因为我时间告诉自己我两秒才刷,我的时间增量会变大。

    五、Time.deltaTime的使用

    因为Time.deltaTime=1,代表的是一秒。

    0.1f *Time.deltaTime行动结果是,我一秒钟才能增加0.1f

    如果觉得0.1少,可以自己增加0.1的数值,保证每次时间增量,可以达到自己希望的数据大小。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    标签: 电脑
    发表评论