本文主要是介绍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这样的距离来控制物体移动,因为这会因为不同的帧频而改变在一秒内所覆盖的距离
这篇关于Unity学习之时间和帧速率管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!