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的数值,保证每次时间增量,可以达到自己希望的数据大小。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菌菌巧乐兹

希望能给大家写更多有用的文章~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值