protected void ChangeInitializationState(ManagerInitializationState newState) { initializationState = newState; if (newState == ManagerInitializationState.COMPLETED) { OnInitializationCompleted?.Invoke(); } }
IEnumerator WaitForManagerInitialization(SceneManager manager) { for (int i = 0; i < MAX_NUMBER_OF_WAIT_INTERVALS; i++) { ManagerInitializationState currentManagerState = manager.InitializationState; if (currentManagerState == ManagerInitializationState.COMPLETED) { if (manager is EntitySceneManager entitySceneManager) { data.entityManager = entitySceneManager; } else if (manager is ItemSceneManager itemSceneManager) { data.itemManager = itemSceneManager; } else if (manager is ProjectileManager projectileManager) { data.projectileManager = projectileManager; } else if (manager is UIManager UIManager) { data.uIManager = UIManager; } Debug.Log($"-- manager '{manager.name}' init completed"); break; } if (currentManagerState == ManagerInitializationState.FAILED) { Debug.LogError($"-- manager '{manager.name}' init failed"); break; } yield return(WaitForSomeTime); } }
public virtual void Init(MasterSystem masterSystem, SceneManagerData data) { initializationState = ManagerInitializationState.IN_PROGRESS; this.data = data; }