示例#1
0
    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);
    }