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; }
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(); }