【问题标题】:Unity PauseMenu doesn't work in second levelUnity PauseMenu 在第二级不起作用
【发布时间】:2018-06-11 12:16:46
【问题描述】:

我正在为我的游戏制作暂停菜单。在级别 1 中,我的暂停菜单有效,但在级别 2 中,如果您按 esc,它会出现,但由于某种原因按钮无法交互。我从关卡复制了画布。

public class PauseMenu : MonoBehaviour {

    public string levelSelect;
    public string mainMenu;
    public bool isPaused;
    public GameObject pauseMenuCanvas;

    void Start (){

    }

    void Update () {

        if(isPaused)
        {
            pauseMenuCanvas.SetActive(true);
            Time.timeScale = 0f;
        } else {
            pauseMenuCanvas.SetActive(false);
            Time.timeScale = 1f;
        }

        if(Input.GetKeyDown(KeyCode.Escape))
        {
            isPaused = !isPaused;
        }
    }

    public void Resume()
    {
        isPaused = false;
    }

    public void LevelSelect()
    {
        Application.LoadLevel(levelSelect);
    }

    public void Quit()
    {
        Application.LoadLevel(mainMenu);
    }
}

【问题讨论】:

  • 你有 EventSystem 吗?
  • 没有用过,也不知道那是什么,但我不明白为什么它在我的第一级有效,但在第二级无效
  • @MartijnVerkerke 当您在第一关的编辑器中查看 GameObject 列表时,它们应该是 EventSystem 对象
  • 是的,在第一层,我应该把它复制到第二层吗?
  • @MartijnVerkerke 是的,你总是需要这个。通常它是在您创建 UI 对象时自动创建的,但是因为您复制了它,所以没有发生这种情况

标签: c# unity3d


【解决方案1】:

你需要添加 EventSystem EventSystem 允许您与按钮进行交互

【讨论】:

    猜你喜欢
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2014-01-31
    • 2015-06-21
    • 2011-10-04
    相关资源
    最近更新 更多