赞
踩
问题:云化后点击暂停后可以暂停,但是暂停界面后的游戏主场景仍然在执行
解决这个问题首先要了解下如何暂停游戏:
- Time.timeScale
- public static float timeScale ;
-
- // 时间流逝的标度。可用于慢动作效果。
-
- // 当 timeScale 为 1.0 时,时间流逝的速度与实时一样快。 当 timeScale 为 0.5 时,时间流逝的速度比实时慢 2x。
-
- // 当 timeScale 设置为 0 时,如果您的所有函数都是独立于帧率的, 则游戏基本上处于暂停状态。
-
- // timeScale 影响 Time 类的所有时间和增量时间测量变量(但 realtimeSinceStartup 和 fixedDeltaTime 除外)。
-
- // 如果您减小了 /timeScale/,建议也将 Time.fixedDeltaTime 减小相同的量。
-
- // 当 timeScale 设置为 0 时,不会调用 FixedUpdate 函数。
以上是官方的解释,也就是我们可以使用Time.timeScale=0来暂停游戏,但是云化后的游戏是变成了视频流,传输需要时间,在用户按下暂停键的一刻,如果先执行弹出暂停界面的代码,后执行Time.timeScale=0,那么就有可能造成主场景的游戏无法暂停,继续执行1-2秒
解决办法:
修改前代码
- objPauseView.SetActive(true);
- Time.timeScale = 0;
修改后代码
- Time.timeScale = 0;
- objPauseView.SetActive(true);
以上,问题解决~
这里再扩展一下unity中继续,重新开始,退出等相关代码
继续游戏:
Time.timeScale = 1;
重新开始:
SceneManager.LoadScene (screenIndex);
注释:screenIndex为游戏场景的索引号
退出游戏(这样游戏app会直接杀掉,建议弹窗后执行):
Application.Quit();
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。