IEnumerator LoadEverything() { createdLoadingBar.InitializeNewAction(.1f, "Loading Main UI"); AsyncOperation loadingOperation = SceneManager.LoadSceneAsync("MainGameUI", LoadSceneMode.Additive); while (!loadingOperation.isDone) { yield return(null); } Debug.Log("Loading Main Game UI is complete."); //Update the loading bar. yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(.15f, "Loading Inventory"); //Initialize everything!!! //Create slots, and define 2D array values. if (CreateInventorySlots != null) { CreateInventorySlots(); } else { Debug.LogError("CreateInventorySlots was null!"); // Used with PanelLayout } if (CreateHotbarSlots != null) { CreateHotbarSlots(); } else { Debug.LogError("CreateHotbarSlots was null!"); //Used with HotbarPanelLayout (Otherwise createdUISlots gets the hotbarslots return). } //Initialize Slots if (InitializeSlots != null) { InitializeSlots(); } else { Debug.LogError("InitializeSlots was null!"); //Used with SlotScript } Debug.Log("Initialized slots"); //UI stuff. yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(.2f, "Loading UI Stuff"); //Hide/Show if (EnableUIHideShow != null) { EnableUIHideShow(); } else { Debug.LogError("EnableUIHideShow was null!"); //Used with InventoryHideShow } //Health Panels if (InitializeUIHealthController != null) { InitializeUIHealthController(); } else { Debug.LogError("InitializeUIHealthController was null!"); //Used for UIHealthController } if (InitializeHealthPanels != null) { InitializeHealthPanels(); } else { Debug.LogError("InitializeHealthPanels was null!"); //Used for HealthPanelReference and PlayerHealthPanelReference. } //Interactable Panels if (InitializeInteractablePanelController != null) { InitializeInteractablePanelController(); } else { Debug.LogError("InitializeInteractablePanelController was null!"); } if (InitializeInteractablePanels != null) { InitializeInteractablePanels(); } else { Debug.LogError("InitializeInteractablePanels was null!"); } //Speech control if (InitializeUISpeechControl != null) { InitializeUISpeechControl(); } else { Debug.LogError("InitializeUISpeechControl was null!"); } //Objective Manager if (InitializeObjectiveManager != null) { InitializeObjectiveManager(); } else { Debug.LogError("InitializeObjectiveManager was null!"); //Used for ObjectiveManager } //Lay out the level yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(.25f, "Creating Terrain"); TerrainReferenceClass initializedMaze = null; if (InitializeTerrain != null) { initializedMaze = InitializeTerrain(); } else { Debug.LogError("InitializeTerrain was null!"); //Used with LevelLayout } //Player stuff. yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(.5f, "Initializing Player"); if (CreatePlayer != null) { CreatePlayer(); } else { Debug.LogError("CreatePlayer was null!"); //Used for CreateLevelItems (Instantiating player) } //Has to be done after the player is instantiated. CurrentLevelVariableManagement.SetLevelReferences(); if (InitializeHotbarManager != null) { InitializeHotbarManager(); } else { Debug.LogError("InitializeHotbarItems was null!"); //Used for initializing the HotbarManager. } if (InitializeCostume != null) { InitializeCostume(); } else { Debug.LogError("InitializeCostume was null!"); //Used for PlayerCostumeManager } if (InitializeBackgroundManager != null) { InitializeBackgroundManager(); } else { Debug.LogError("InitializeBackgroundScroller was null!"); //Initialize the BackgroundScroller class. } if (InitializePlayer != null) { InitializePlayer(); } else { Debug.LogError("InitializePlayer was null!"); //Used for initializing the HumanoidBaseReferenceClass. } if (InitializeCameraFunctions != null) { InitializeCameraFunctions(); } else { Debug.LogError("InitializeCameraFunctions was null!"); // Used for camera controller. } if (InitializeTimeIndicator != null) { InitializeTimeIndicator(); } else { Debug.LogError("InitializeTimeIndicator was null!!"); //Used for TimeIndicator. } //Initialize the enemies. yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(.75f, "Initializing Enemies"); if (CreateTerrainItems != null) { CreateTerrainItems(initializedMaze); } else { Debug.LogError("CreateTerrainItems was null!"); //Used for instantiating the enemies and trees. } if (InitializeEnemyHealthControllers != null) { InitializeEnemyHealthControllers(); } else { Debug.LogError("InitializeEnemyHealthControllers was null!"); //Used for initializing CharacterHealthController. } if (InitializeEnemies != null) { InitializeEnemies(); } else { Debug.LogError("InitializeEnemies was null!"); //Used for all enemies (requires player being instantiated). } //NPCs yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(.85f, "Initializing NPCs"); if (InitializeNPCPanelControllers != null) { InitializeNPCPanelControllers(); } else { Debug.LogError("InitializeNPCPanelControllers was null!"); } if (InitializeNPCs != null) { InitializeNPCs(); } else { Debug.LogError("InitializeNPCs was null!"); } //Particle effect (world) yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(.9f, "Initializing Particle Effects"); if (InitializeSystemWideParticleEffect != null) { InitializeSystemWideParticleEffect(); } else { Debug.LogError("InitializeSystemWideParticleEffect was null!"); } //Purchase panels if (InitializePurchasePanels != null) { InitializePurchasePanels(); } else { Debug.LogError("InitializePurchasePanels was null!"); } if (InitializePurchasePanelManager != null) { InitializePurchasePanelManager(); } else { Debug.LogError("InitializePurchasePanelManager is null!"); } if (SetInactiveObjects != null) { SetInactiveObjects(); } else { Debug.LogError("HideInventories is null!"); } //Just mention that EventManager has been completed successfully. yield return(new WaitForSeconds(.1f)); createdLoadingBar.InitializeNewAction(1, "Completed successfully!"); yield return(new WaitForSeconds(1.5f)); Debug.Log("Completed EventManager"); //Delete the loading bar Destroy(createdLoadingBar.gameObject); }