由于今天写计时器,实在是没理清Time类,在这里做一个总结
Time.deltaTime
每帧的时间。完成上一帧所用的时间(以秒为单位)(只读)。此属性提供当前帧和上一帧之间的时间。
就是 1 除以帧率的结果,它的单位为?秒 / 帧。
它是受到时间缩放影响的,当Time.timeScale为0时,Time.deltaTime也为0。
绝大多数是1s50帧,这个也要看具体的机型。
private float timer = 0;
private float delayTime = 1;
private void Update()
{
timer += Time.deltaTime;
if(timer >= delayTime)
{
//你要做的事......
timer = 0;
}
}
这个计数器就是把每一个两帧之间的时间加起来,当达到1s时就do your thing,然后归零。
广泛应用于物体移动
fixedDeltaTime
fixedDeltatime是一个固定的时间增量。以秒为单位,在Edit->ProjectSettings->Time中Fixed Timestep设置的值就是Time.fixedDeltaTime。
time
从游戏开始后所运行的时间,会受时间缩放比例影响
Time.realtimeSinceStartup
从游戏开始后所运行的真实时间,不会受时间缩放比例的影响。
测试程序性能
Time.timeScale:
时间的缩放,Time.timeScale为1是默认值,为0可用于游戏的暂停,为2可用于游戏的快进。 可在Edit->Project Setting->Time的Time Scale中设置时间缩放。
1.Time.timeScale不会影响Update和LateUpdate,因为Time.timeScale不会影响和帧率有关的事情,Update和LateUpdate是受到帧率影响而不是受到时间影响。 2.Time.timeScale会影响FixedUpdate,因为FixedUpdate是受到时间影响的。 3.Time.timeScale是对于整个游戏的而不是单个场景。 4.Time.timeScale的值是一个[0,100]的数。 ?
|