Unity学习之时间和帧速率管理

在Unity中,Update()函数的运行次数是电脑的性能决定,一般来说是一秒六十帧,且可以通过人为手段进行改变

若我们想让一物体每秒平移一米,按一秒五十帧算,每帧需要平移0.02米,但若此时的帧率有所变化,帧率为一百,那一秒就相当于执行了100次Update(),这样一秒以后,物体就会平移2米,但在实际游戏场景加载中,这种情况是不允许发生的,因此就需要用到Time.Timedate()函数(返回上一帧到当前帧的时间间隔)控制物体移动以秒(distancePerSecend)进行移动而不是每帧(distancePerFrame),这样就需要引出步长这一概念

Update()的运行时机是根据每帧的步长而决定,在帧率为50的情况下,步长为0.02

在实际物体移动中,每帧的步长是不确定的,因此虽然我们要求小球在1秒移动1m但是如果细致的从每一帧和观察,物体移动速度是不确定的(不是匀速),因此我们需要用到Time.Timedate()函数控制物体

如下图设每一帧的节点为A、B、C

时间间隔:AB=0.01 BC=0.03

grisTrans.position += speed*Time.Timedate;

虽然每一帧的时间间隔不同,但是若是1秒50帧,其时间间隔总和会向一秒靠近

这样在控制物体移动时我们在相应的时间间隔物体移动相依的距离如AB段移动0.01m,这样就可以控制物体在一秒内匀速移动

而对于不同的帧率而言,我们就不要用到每帧需要平移0.02这样的距离来控制物体移动,因为这会因为不同的帧频而改变在一秒内所覆盖的距离

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值