void OnSceneLoad(Scene scene, LoadSceneMode mode) { Debug.Log("Scene load"); menuStatus.Clear(); _eventSystem = FindObjectOfType <EventSystem>(); //very specific scene, if in this scene, I want to remove the last panel if (scene.buildIndex == 1) { //defaultPanel = FindObjectOfType<DefaultPanel>().gameObject; //Button ResumeButton = defaultPanel.transform.GetChild(0).transform.Find("ResumeButton").GetChild(0).GetComponent<Button>(); //ResumeButton.onClick.AddListener(delegate { UnpauseGame(); }); //m_bRemoveLastPanel = false; // defaultPanel.gameObject.SetActive(false); } else if (scene.buildIndex != 0) //otherwise don't allow the removal of the last panel; { //don't allow the last panel to be removed m_bRemoveLastPanel = false; } else if (scene.buildIndex == 0) //else if I am in the main scene menu (assuming it is 0 as of right now) { m_SettingsPanel = GameObject.Find("Options_Panel"); m_bInMainMenu = true; m_bMenuAnimator = FindObjectOfType <Canvas>().GetComponent <Animator>(); if (!m_SettingsPanel) { m_SettingsPanel = GameObject.Find("Options_Panel"); } m_CreditsPanel = GameObject.Find("Credits_Panel"); //Currently null; m_CharacterSelectionPanel = GameObject.Find("Character_Selection"); _eventSystem = GameObject.Find("EventSystem").GetComponent <EventSystem>(); Button vsButton = GameObject.Find("VS_Button").GetComponent <Button>(); Button SettingsButton = GameObject.Find("Settings_Button").GetComponent <Button>(); Button CreditsButton = GameObject.Find("Credits_Button").GetComponent <Button>(); Button QuitBUtton = GameObject.Find("Quit_Button").GetComponent <Button>(); _creditsScroller = FindObjectOfType <CreditsScroll>(); //Clear all listeners //vsButton.onClick.RemoveAllListeners(); //SettingsButton.onClick.RemoveAllListeners(); //CreditsButton.onClick.RemoveAllListeners(); //QuitBUtton.onClick.RemoveAllListeners(); //Add new listeners vsButton.onClick.AddListener(delegate { UIManager.Instance.MainMenuChangePanel(GameObject.Find("Second_Panel")); }); SettingsButton.onClick.AddListener(delegate { UIManager.Instance.MenuOpenPanel(m_SettingsPanel, "IsSettings", SettingsButton); }); CreditsButton.onClick.AddListener(delegate { UIManager.Instance.MenuOpenPanel(m_CreditsPanel, "IsCredits", CreditsButton); }); QuitBUtton.onClick.AddListener(delegate { UIManager.Instance.QuitGame(); }); //find the first panel and push it to the stack menuStatus.Push(GameObject.Find("First_Panel")); m_ButtonAnimator = menuStatus.Peek().GetComponent <Animator>(); } else { m_bRemoveLastPanel = true; } }
/// <summary> /// Setup the main menu. /// </summary> private void RunMenuSetup() { Background = GetNode <TextureRect>("Background"); guiAnimations = GetNode <AnimationPlayer>("GUIAnimations"); thriveLogo = GetNode <TextureRect>(ThriveLogoPath); newGameButton = GetNode <Button>(NewGameButtonPath); freebuildButton = GetNode <Button>(FreebuildButtonPath); creditsContainer = GetNode <Control>(CreditsContainerPath); credits = GetNode <CreditsScroll>(CreditsScrollPath); licensesDisplay = GetNode <LicensesDisplay>(LicensesDisplayPath); storeLoggedInDisplay = GetNode <Label>(StoreLoggedInDisplayPath); modManager = GetNode <ModManager>(ModManagerPath); MenuArray?.Clear(); // Get all of menu items MenuArray = GetTree().GetNodesInGroup("MenuItem"); if (MenuArray == null) { GD.PrintErr("Failed to find all the menu items!"); return; } RandomizeBackground(); options = GetNode <OptionsMenu>("OptionsMenu"); saves = GetNode <SaveManagerGUI>("SaveManagerGUI"); gles2Popup = GetNode <CustomConfirmationDialog>(GLES2PopupPath); modLoadFailures = GetNode <ErrorDialog>(ModLoadFailuresPath); // Set initial menu SwitchMenu(); // Easter egg message thriveLogo.RegisterToolTipForControl("thriveLogoEasterEgg", "mainMenu"); if (OS.GetCurrentVideoDriver() == OS.VideoDriver.Gles2 && !IsReturningToMenu) { gles2Popup.PopupCenteredShrink(); } UpdateStoreNameLabel(); }