[英]Time.timeScale = 0f; not pausing my game when I run it in unity?
我正在尝试为暂停菜单制作一个脚本,我尝试使用Time.timeScale
并且当我统一运行它时它不会暂停游戏。 我有另一个脚本,它是一个脚本游戏,它也使用Time.timeScale = 0f;
当我运行它时它工作正常。 我在 Debug.Log 中检查了 TimetimsScale,它保持在 1。这是我的代码:
void Update()
{
if(Input.GetKeyDown(KeyCode.Escape))
{
if (gamePaused)
{
Play();
}
else
{
Paused();
}
}
}
public void Paused ()
{
gamePaused = true;
pauseMenu.SetActive(true);
Time.timeScale = 0f;
}
public void Play()
{
Time.timeScale = 1f;
pauseMenu.SetActive(false);
gamePaused = false;
}
我在您发布的代码中找不到任何逻辑错误。 所以有两种可能。
Time.timeScale
。 你应该检查它的引用。 或使用Debug.Log
Function 直接检查它的值。如果您的脚本被添加两次(或从未添加),也会发生这种情况。 通过右键单击项目选项卡中的脚本文件和 select Find References In Scene
来检查脚本的引用。Time.timeScale
控制。 首先, Time.timeScale = 0f;
并不意味着一切都会停止。
它只影响关于“时间”的逻辑( Time.deltaTime
、Animation Sequence、 WaitForSeconds
class 等)
例如,如果您在没有Time.deltaTime
的情况下使用Update
Function(或yield retun null
loop Coroutine),则不会在 timeScale 为零时停止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.