一个很神奇的功能:暂停游戏,且1秒后自动继续游戏。
用Time.timeScale=0来暂停游戏后,不管是用Timer-=Time.deltaTime还是用协程StartCoroutine来完成计时器都不行。因为上面两个方法都需要Time.timeScale。
现在来用不基于Time.timeScale的方法完成计时器。
Time.realtimeSinceStartup会返回从游戏开始后到现在的时间,想到了这个,我们的计时器就出来了。
先设置时间点为当前时间加上暂停的间隔时间:
needToUnPause = true
UnPauseTimePoint = Time.realtimeSinceStartup + second;
然后Update中判断当前时间是否大于间隔点即可。
if (needToUnPause)
{
if (Time.realtimeSinceStartup > UnPauseTimePoint)
{
GameController.instance.UnPauseGame();
needToUnPause = false;
}
}