private IEnumerator InitializeGroup() { if (this._initializableObjects == null) { yield break; } var enumerator = this._initializableObjects.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current == null) { TimiDebug.LogErrorColor("Initializable object list in group " + this._groupName + " has a null object", LogColor.red); continue; } IInitializable initializable = enumerator.Current.GetComponent <IInitializable>(); if (initializable == null) { TimiDebug.LogErrorColor(enumerator.Current.name + " has no " + typeof(IInitializable).Name, LogColor.red); continue; } TimiDebug.LogColor("Initializing " + enumerator.Current.name, LogColor.green); initializable.StartInitialize(); if (this._serialLoad) { while (!initializable.IsFullyInitialized) { yield return(null); } } } }
private IEnumerator InitializeGroup() { if (this._initializables == null || this._initializables.Count == 0) { yield break; } var enumerator = this._initializables.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current == null) { DebugLog.LogErrorColor("Initializable object list in group " + this._groupName + " has a null object", LogColor.red); continue; } IInitializable initializable = enumerator.Current; DebugLog.LogColor("Initializing " + initializable.GetName, LogColor.green); initializable.StartInitialize(); } }
private IEnumerator SerialInitialize() { if (this._initializables == null || this._initializables.Count == 0) { yield break; } float startTimeInSeconds = Time.fixedTime; var enumerator = this._initializables.GetEnumerator(); while (enumerator.MoveNext()) { IInitializable initializable = enumerator.Current as IInitializable; if (initializable == null) { GameObject asGO = enumerator.Current as GameObject; initializable = asGO.GetComponent <IInitializable>(); } if (initializable == null) { TimiDebug.LogErrorColor("Unable to convert " + enumerator.Current.name + " to " + typeof(IInitializable).Name, LogColor.red); continue; } TimiDebug.LogColor("Initializing " + initializable.GetName, LogColor.green); initializable.StartInitialize(); while (!initializable.IsFullyInitialized) { if ((Time.fixedTime - startTimeInSeconds) > MAX_TIMEOUT_IN_SECONDS) { TimiDebug.LogErrorColor("Initialization timed out waiting for: " + initializable.GetName, LogColor.red); yield break; } yield return(null); } } TimiDebug.LogColor("Initialization complete", LogColor.green); }