Unity增量时间Time.deltaTime详解

一、时间增量

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

平时我们的时间都是按秒计的,所以我们习惯的时间增量就是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秒。

三、时间增量的作用 

如果我让你吃苹果,吃苹果的规则是,每跑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的数值,保证每次时间增量,可以达到自己希望的数据大小。

猜你喜欢

转载自blog.csdn.net/weixin_49427945/article/details/130325676
今日推荐