Exemple #1
0
    /// <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);
    }
Exemple #2
0
    /// <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);
    }