realtimeSinceStartup表示的是从游戏启动时开始现在经历过的真实时间。
可以使用这个方法做一个简单的真实时间的计时器,但是需要注意的是,他不受到timeScale所控制。它不依赖游戏时间,而是系统时间。
例如我们想知道某个代码块的耗时,比如我写了一个又臭又长的循环,就可以这么做:
float time1 = Time.realtimeSinceStartup;
Debug.Log("NowTime: " + time1);
for(int i = 0 ; i < 100; i++)
for(int j = 0 ; j < 100; j++)
for(int k = 0 ; k < 100; k++);
Debug.Log(Time.realtimeSinceStartup - time1);
我的机器大概需要0.86秒,但是你多运行几次你就会发现time1的值不断的变大,因为它存着的是游戏从开始启动到现在已经花费多少时间了,是以秒为单位的。
realtimeSinceStartup就可以运用在那些不需要被受游戏暂停的地方使用。一般都是ui的动画效果,比如你开一个背包有一个变大的过程你不希望因为你的timeScale让动画没有效果使用realtimeSinceStartup是一个好的选择。或者是做一些道具销毁的计时器也是可以的。
网友评论