示例#1
0
    // Return to a previous screen if one is available
    public virtual void ReturnToPreviousScreen()
    {
        if (prevScreens.Count == 0)
        {
            return;
        }

        GameObject          oldScreen        = goCurrentPanelObj;
        UIMenuScreenManager oldScreenManager = currentScreenManager;

        string panelID       = prevScreens.Pop();
        string lastSelection = "";

        if (bStorePreviousSelections)
        {
            if (prevSelectedScreenUINames.Count > 0)
            {
                lastSelection = prevSelectedScreenUINames.Pop();
            }
        }

        sCurrentPanel        = null;
        currentScreenManager = null;
        goCurrentPanelObj    = null;

        oldScreenManager.CloseScreen(() => { OpenNewScreen(panelID, lastSelection); });
    }
示例#2
0
    // Changes the Menu Screen to panel
    public virtual void GoToScreen(string panelID)
    {
        if (!dMenuScreens.ContainsKey(panelID))
        {
            return;
        }

        if (bStorePreviousSelections)
        {
            if (EventSystem.current.currentSelectedGameObject == null)
            {
                prevSelectedScreenUINames.Push("");
            }
            else
            {
                prevSelectedScreenUINames.Push(EventSystem.current.currentSelectedGameObject.name);
            }
        }

        UIMenuScreenManager oldScreenManager = null;
        GameObject          oldScreen        = goCurrentPanelObj;

        if (sCurrentPanel != null)
        {
            prevScreens.Push(sCurrentPanel);
            oldScreenManager = currentScreenManager;

            sCurrentPanel        = null;
            currentScreenManager = null;
            goCurrentPanelObj    = null;

            oldScreenManager.CloseScreen(() => { OpenNewScreen(panelID, null); });
        }
        else
        {
            OpenNewScreen(panelID, null);
        }
    }