一个很神奇的功能:暂停游戏,且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; } }