Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 3
0
        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);
        }