Unity deltaTime — 增量时间

我们假设游戏运行时,1秒是60帧。—— 那就是说60个画面,刷!刷!刷!执行完,耗时1秒。

如果电脑,或者手机帧数没有到60帧,时而30帧,时而50帧

那么就会出现,有时候1秒移动了500米 有时候300米,总之每秒都不一样… …

引入增量时间

增量时间是实时变动的,而且每一帧都在变动

1秒30帧,那增量时间就是 1/30 秒
1秒60帧,那增量时间就是 1/60 秒
1秒166帧,那增量时间就是 1/166 秒

这样的设计理念,就保证了无论帧率是多是少,我们让物体1秒移动10米,最后1秒移动的就一定是10米

公式:路程=速度*时间

10米=1秒 * 10米/秒
10米=(1/60 * 60) *10米/秒
10米=(1/166 * 166) *10米/秒
10米=(增量时间 * 1秒总帧数) *10米/秒

重点:

Update函数是每帧执行一次,那么经历过一帧耗费的时间就是 增量时间/deltaTime

1秒内Update执行的次数,就是1秒内执行的总帧数

所以我们只需要写上 transform.Translate(0, 0, Time.deltaTime * 10)这一个函数

Update执行了1次,transform.Translate(0, 0, 1/60 * 10)执行一次,物体移动了1/6米

Update1秒内执行了60次,就是transform.Translate(0, 0, Time.deltaTime * 10)乘以60次
相当于 =(每帧时间1/60 * 速度 * 60)=10米

Update1秒内执行了N次,就是transform.Translate(0, 0, Time.deltaTime * 10)乘以N次
相当于 =(每帧时间1/N * 速度 * N)=10米

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天宇琪云

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值