【Unity中Time类】

发布于:2022-12-14 ⋅ 阅读:(303) ⋅ 点赞:(0)

由于今天写计时器,实在是没理清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]的数。
 


网站公告

今日签到

点亮在社区的每一天
去签到