首页 分享 Unity2D教程:当Time.timeScale=0时完成计时器

Unity2D教程:当Time.timeScale=0时完成计时器

来源:花匠小妙招 时间:2024-12-18 02:12

最新推荐文章于 2024-02-25 14:15:10 发布

JK Chen 于 2020-07-03 20:24:05 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。

一个很神奇的功能:暂停游戏,且1秒后自动继续游戏。

用Time.timeScale=0来暂停游戏后,不管是用Timer-=Time.deltaTime还是用协程StartCoroutine来完成计时器都不行。因为上面两个方法都需要Time.timeScale。

现在来用不基于Time.timeScale的方法完成计时器。

方法一

Time.realtimeSinceStartup会返回从游戏开始后到现在的时间,想到了这个,我们的计时器就出来了。

先设置时间点为当前时间加上暂停的间隔时间:

needToUnPause = true UnPauseTimePoint = Time.realtimeSinceStartup + second; 12

然后Update中判断当前时间是否大于间隔点即可。

if (needToUnPause) { if (Time.realtimeSinceStartup > UnPauseTimePoint) { GameController.instance.UnPauseGame(); needToUnPause = false; } } 12345678

方法二

public void TimerHelper(System.Action action, float second) { ObjectLibrary.gameManager.StartCoroutine(Timer(action, second)); } /// <summary> /// 延时启动 /// </summary> /// <param name="action">函数</param> /// <param name="second">延时秒数</param> /// <param name="affectedByTimeScale">是否需要受函数影响</param> /// <returns></returns> public IEnumerator Timer(System.Action action, float second, bool affectedByTimeScale = true) { if (affectedByTimeScale) { yield return new WaitForSeconds(second); } else { yield return new WaitForSecondsRealtime(second); } action(); yield break; }

12345678910111213141516171819202122232425

相关知识

当T= 0时,自相关函数值最小值
我的世界刷花教程
电路如图所示,当A=0,B=1,C=0时,输出为( )。
当某投资方案的净现值=0时,该方案的()。
DIY鲜花手机壳技巧教程 靓丽图案巧手粘来
下图所示电路,Is=0时,I=2A,则当Is=8A时,I为( )。
花园自动灌溉控制器的制作教程
微积分导函数连续当x不为0时,f(x)=x^2sin(1/x);当x=0时,f(x)=0,此函数在R上处处可导,但导函数在0点不连续如果去计算一下是的,当x不等于零时,导函数无法求极限得出x=0的倒数,在x=0点的导数只能按
在LAB颜色空间中,当L=100A=0B=0时呈现什么颜色()。
元旦倒计时(JS计时器)

网址: Unity2D教程:当Time.timeScale=0时完成计时器 https://www.huajiangbk.com/newsview1159271.html

所属分类:花卉
上一篇: Tnsorflow2.1安装教程
下一篇: MaxDOS v5.8s U盘版

推荐分享