/// <summary>During the Game-Managers load method it waits for a scene manager to register itself. A scenemanager's awake method will invoke this function so the game /// manager prepare it for loading.</summary> /// <param name="sceneManager">The scene manager to register.</param> public virtual void RegisterSceneManager(SceneManager sceneManager) { if (SceneManagers.Contains(sceneManager)) { return; } SceneManagers.Add(sceneManager); Log(string.Format("Scene Manager {0} was registered", sceneManager.gameObject.name)); sceneManager.Container = Container; if (SwitchLevelSettings != null) { SwitchLevelSettings.InvokeControllerSetup(sceneManager); } Container.Inject(sceneManager); sceneManager.Setup(); sceneManager.Initialize(); sceneManager.enabled = false; sceneManager.gameObject.SetActive(false); }
/// <summary>During the Game-Managers load method it waits for a scene manager to register itself. A scenemanager's awake method will invoke this function so the game /// manager prepare it for loading.</summary> /// <param name="sceneManager">The scene manager to register.</param> public virtual void RegisterSceneManager(SceneManager sceneManager) { if (SceneManagers.Contains(sceneManager)) { return; } SceneManagers.Add(sceneManager); Log(string.Format("Scene Manager {0} was registered", sceneManager.gameObject.name)); sceneManager.Container = Container; if (SwitchLevelSettings != null) { SwitchLevelSettings.InvokeControllerSetup(sceneManager); } Container.Inject(sceneManager); #if UNITY_5 foreach (var item in sceneManager.GetComponentsInChildren <ISystemService>()) { Container.RegisterInstance <ISystemService> (item, item.GetType().Name); } #else for (var i = 0; i < sceneManager.transform.childCount; i++) { //var service = sceneManager.transform.GetChild(i).GetComponent<ISystemService>(); //if (service != null) //{ // Container.RegisterInstance<ISystemService>(service, service.GetType().Name); //} } #endif sceneManager.Setup(); sceneManager.Initialize(); sceneManager.enabled = false; sceneManager.gameObject.SetActive(false); }