public override void ExecuteMenuCommand()
    {
        GlobalInputController.LockInput();
        switch (MenuAction)
        {
        case MenuCommand.EXIT_GAME:
            Application.Quit();
            break;

        case MenuCommand.RESTART:
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex, LoadSceneMode.Single);
            break;

        case MenuCommand.CHANGE_SCENE:
            if (c_itemActiveData.i_nextScene > -1 && c_itemActiveData.i_nextScene < SceneManager.sceneCountInBuildSettings)
            {
                MessageServer.OnSceneChange();
                SceneManager.LoadScene(c_itemActiveData.i_nextScene, LoadSceneMode.Single);
            }
            break;

        case MenuCommand.RESUME:
            MessageServer.SendMessage(MessageID.PAUSE, new Message(0));
            break;

        case MenuCommand.CONFIRM:
            break;
        }
    }
    public override void ExecuteMenuCommand()
    {
        GlobalInputController.LockInput();
        switch (MenuAction)
        {
        case MenuCommand.EXIT_GAME:
            Application.Quit();
            break;

        case MenuCommand.RESTART:
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex, LoadSceneMode.Single);
            break;

        case MenuCommand.CHANGE_SCENE:
            if (c_itemActiveData.i_nextScene > -1)
            {
                MessageServer.OnSceneChange();
                SceneManager.LoadScene(c_itemActiveData.i_nextScene, LoadSceneMode.Single);
            }
            break;

        case MenuCommand.RESUME:
            MessageServer.SendMessage(MessageID.PAUSE, new Message(0));
            break;

        case MenuCommand.MENU_BACK:
            MessageServer.SendMessage(MessageID.MENU_BACK, new Message());
            break;

        case MenuCommand.MENU_FORWARD:
            if (ChildMenuController == null)
            {
                return;
            }
            MessageServer.SendMessage(MessageID.MENU_FORWARD, new Message(ChildMenuController.GetSuperMenuIndex()));
            break;

        case MenuCommand.CONFIRM:
            break;

        case MenuCommand.EDIT_DATA:
            if (DataItem == DataTarget.ERROR_TARGET)
            {
                return;
            }
            if (ChildEditController == null)
            {
                return;
            }
            // open data editor, wait for return
            ChildEditController.Activate(DataItem);
            MessageServer.SendMessage(MessageID.EDIT_START, new Message());
            break;

        case MenuCommand.RESET_CONTROLS:
            GlobalGameData.SetControlsToDefault(DataItem == DataTarget.CONTROLLER_CONTROLS ? InputType.CONTROLLER_GENERIC : InputType.KEYBOARD_GENERIC);
            break;
        }
    }
Пример #3
0
    /// <summary>
    /// Pops the value of the menu stack and then takes the associated value
    /// and activates it. Used when returning to an "earlier" menu.
    /// </summary>
    public void PopMenuStack()
    {
        m_bMenuInputActive = false;
        if (s_controllerStack.Count == 0)
        {
            if (EmptyStackReturnsToPrevious)
            {
                MessageServer.OnSceneChange();
                SceneManager.LoadScene(PreviousSceneID, LoadSceneMode.Single);
            }
            return;
        }

        int newIndex = s_controllerStack.Pop();

        m_activeMenuController.HideMenu();
        m_activeMenuControllerIndex = newIndex;
        m_activeMenuController      = MenuControllers[newIndex];
        m_activeMenuController.ShowMenu();
        m_activeMenuController.UpdateHelpTextOnBack();
    }