Unity—Time.deltaTime
定义
Unity引擎当中,两帧之间的间隔时间
基本作用
使不同的性能的电脑跑同一份Unity程序时,画面上的对应的同一物体能够在相同时间内运动效果能够保持一致(或者是一些需要效果上需要同步的数值)。
对第二点的解释
首先,大伙的电脑肯定是参差不齐的,这是客观条件,假设有两台电脑,一台A每秒渲染120帧,一台B每秒渲染50帧。
但是,我们有个刚性需求,要求移动的物体在移动的时候,其移动速度移动的时候不受机器性能的影响,即,不能运行慢帧数低的机器渲染的物体移动要比运行快真高的电脑要慢。
因此Unity提供了Time.deltaTime
这个变量,Unity会自动根据当前的机器性能自动算出两帧之间的时间差并赋给,然后提供给开发者使用。
GameObject.Transform.Translate(0,0,1*Time.deltaTime);
性能好的电脑,渲染的帧数多,帧与帧间隔就短Time.deltaTime
数值就小。
假设一台电脑A每秒渲染100帧,增量时间按0.01s来算,乘与速度1m/s,假设运行0.5s,那么路程就是 0.01 * 50 * 1 = 0.5m。
性能差的电脑,渲染的帧数少,帧与帧间隔就长Time.deltaTime
数值就大,假假设一台电脑A每秒渲染10帧,那么增量时间按0.1s算,乘与速度1m/s,那 运行0.5s,那么路程就是 0.1 * 5 * 1 = 0.5m。