Example #1
0
    private IEnumerator InitializationSequence()
    {
        float startTimeSeconds = Time.realtimeSinceStartup;

        InitializableSerialGroup initializables = new InitializableSerialGroup("Core");


        /** Start initialization sequence. Order matters here!! **/

        this._sharedInit.AssertNotNull("Shared Init");
        initializables.AddInitializable(this._sharedInit);

        this._firstLaunchManager.AssertNotNull("First Launch Manager");
        initializables.AddInitializable(this._firstLaunchManager);

        this._appConfig.AssertNotNull("App Config");
        initializables.AddInitializable(this._appConfig);

        this._identityManager.AssertNotNull("Identity Manager");
        initializables.AddInitializable(this._identityManager);

        this._multiPlayerManager.AssertNotNull("Multiplayer Manager");
        initializables.AddInitializable(this._multiPlayerManager);

        this._appInit.AssertNotNull("App Init");
        initializables.AddInitializable(this._appInit);

        this._dataModelsLoader.AssertNotNull("Data Models Loader");
        initializables.AddInitializable(this._dataModelsLoader);

        /** End initialization sequence. Order matters here!! **/

        initializables.StartInitialize();
        while (!initializables.IsFullyInitialized)
        {
            yield return(null);
        }

        float timeElapsedSeconds = Time.realtimeSinceStartup - startTimeSeconds;

        DebugLog.LogColor("Initialization complete in " + timeElapsedSeconds.ToString("F2") + " seconds", LogColor.green);

        /** Initialization complete. Load App **/

        this._appLoader.AssertNotNull("App Loader");
        this._appLoader.StartInitialize();
        while (!this._appLoader.IsFullyInitialized)
        {
            yield return(null);
        }

        this._loadingScreenManager.AssertNotNull("Loading Screen Manager");
        this._loadingScreenManager.StartInitialize();
        while (!this._loadingScreenManager.IsFullyInitialized)
        {
            yield return(null);
        }

        Input.backButtonLeavesApp = true;
    }
Example #2
0
        private IEnumerator InitializationSequence(System.Action callback)
        {
            InitializableSerialGroup initializables = new InitializableSerialGroup("Shared Init");

            this._prefabLoader.AssertNotNull("Prefab loader");
            initializables.AddInitializable(this._prefabLoader);

            this._sceneLoader.AssertNotNull("Scene loader");
            initializables.AddInitializable(this._sceneLoader);

            initializables.StartInitialize();
            while (!initializables.IsFullyInitialized)
            {
                yield return(null);
            }

            callback.Invoke();
        }