public void Unload() { GameObject.Destroy(loadingBar); GameObject.Destroy(loadingButton); GameObject.Destroy(loadingRoot); GameObject.Destroy(optionsUIManager); //destroys all menu items (ModOptions) GameObject.Destroy(optionsMenuScreen); modOptions = null; backButton = null; optionsMenuScreen = null; optionsUIManager = null; loadingBar = null; loadingButton = null; loadingRoot = null; rootUIManager = null; loadingButtonPressed = false; UnityEngine.SceneManagement.SceneManager.sceneLoaded -= SceneLoaded; comms.DisableNode(); comms = null; Instance = null; }
void CreateMainMenuUIElements() { if (rootUIManager == null) { return; } GameObject go = new GameObject(OptionsUIManagerName); optionsUIManager = go.AddComponent <RandomizerFauxUIManager>(); //Vector2 buttonPos = new Vector2( -1400f, 400f ); //Vector2 barPos = new Vector2( -1400f, 200f ); //Vector2 buttonSize = new Vector2( 400f, 200f ); //Vector2 barSize = new Vector2( 400f, 40f ); loadingRoot = new GameObject("Loading Root"); Canvas canvas = loadingRoot.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.gameObject.GetOrAddComponent <RectTransform>().sizeDelta = new Vector2(1920f, 1080f); CanvasScaler canvasScaler = loadingRoot.AddComponent <CanvasScaler>(); canvasScaler.referenceResolution = new Vector2(1920f, 1080f); //rootUIManager.gameObject.PrintSceneHierarchyTree(); Vector3 pos = rootUIManager.gameObject.FindGameObjectInChildren("StartGameButton").transform.position; loadingButton = GameObject.Instantiate(rootUIManager.gameObject.FindGameObjectInChildren("StartGameButton")); loadingButton.transform.SetParent(rootUIManager.gameObject.FindGameObjectInChildren("MainMenuScreen").transform); loadingButton.gameObject.SetActive(true); loadingButton.transform.localScale = Vector3.one; loadingButton.transform.position = pos; loadingButton.transform.Translate(new Vector3(-5.0f, 4f)); //Dev.Log( "Finished loader ui elements" ); GameObject.DestroyImmediate(loadingButton.GetComponent <MenuButton>()); GameObject.DestroyImmediate(loadingButton.GetComponent <EventTrigger>()); GameObject.DestroyImmediate(loadingButton.GetComponentInChildren <AutoLocalizeTextUI>()); Text loadingButtonText = loadingButton.GetComponentInChildren <Text>(); loadingButtonText.text = "[Load Enemy Randomizer]"; loadingButtonText.color = Color.white; loadingButtonText.horizontalOverflow = HorizontalWrapMode.Overflow; loadingButtonText.verticalOverflow = VerticalWrapMode.Overflow; Button b = loadingButton.AddComponent <Button>(); b.targetGraphic = loadingButtonText; b.interactable = true; ColorBlock cb = new ColorBlock { highlightedColor = Color.yellow, pressedColor = Color.red, disabledColor = Color.black, normalColor = Color.white, colorMultiplier = 2f }; b.colors = cb; b.onClick.AddListener(LoadingButtonClicked); try { AddLoadingButtonCallback(EnemyRandomizerLoader.Instance.BuildEnemyRandomizerDatabase); } catch (Exception e) { Dev.LogError(e.ToString()); } loadingBar = GameObject.Instantiate(rootUIManager.gameObject.FindGameObjectInChildren("StartGameButton")); loadingBar.transform.SetParent(rootUIManager.gameObject.FindGameObjectInChildren("MainMenuScreen").transform); loadingBar.gameObject.SetActive(true); loadingBar.transform.localScale = Vector3.one; loadingBar.transform.position = pos; loadingBar.transform.Translate(new Vector3(-5.1f, 3.7f)); GameObject.DestroyImmediate(loadingBar.GetComponent <MenuButton>()); GameObject.DestroyImmediate(loadingBar.GetComponent <EventTrigger>()); GameObject.DestroyImmediate(loadingBar.GetComponentInChildren <AutoLocalizeTextUI>()); loadingBarText = loadingBar.GetComponentInChildren <Text>(); loadingBarText.text = "Loading Progress: "; loadingBarText.color = Color.white; loadingBarText.horizontalOverflow = HorizontalWrapMode.Overflow; loadingBarText.verticalOverflow = VerticalWrapMode.Overflow; loadingBar.gameObject.SetActive(false); GameObject.DontDestroyOnLoad(loadingRoot); }
public void Start() { Instance = this; DontDestroyOnLoad(this); }