// 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); }); }
// 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); } }