Exemplo n.º 1
0
 public static void OpenSubScenesRecursivelyEditor(CompositeScene scene)
 {
     foreach (var child in scene.SubScenes)
     {
         EditorSceneManager.OpenScene(child.ScenePath, OpenSceneMode.Additive);
         OpenSubScenesRecursivelyEditor(child);
     }
 }
Exemplo n.º 2
0
 public void OpenSubscenesRecursively(CompositeScene scene)
 {
     for (int i = 0; i < scene.SubScenes.Count; i++)
     {
         _loader.LoadScene(scene.SubScenes[i].ScenePath, LoadSceneMode.Additive, null, LoadSceneRelationship.Child);
         OpenSubscenesRecursively(scene.SubScenes[i]);
     }
 }
Exemplo n.º 3
0
    public static void LoadSceneAndItsSubscenesEditor(CompositeScene parentCompositeScene, SceneDefinitions sceneDefinitions)
    {
        //load root scene additively
        EditorSceneManager.OpenScene(sceneDefinitions.RootScenePath, OpenSceneMode.Single);

        //unload previous scenes to avoid nullrefs

        EditorSceneManager.OpenScene(parentCompositeScene.ScenePath, OpenSceneMode.Additive);

        OpenSubScenesRecursivelyEditor(parentCompositeScene);
    }
Exemplo n.º 4
0
    public void LoadSceneAndItsSubscenes(CompositeScene parentCompositeScene)
    {
        var mainScene = SceneManager.GetSceneByPath(sceneDefinitions.RootScenePath);

        if (!mainScene.IsValid())
        {
            _loader.LoadScene(sceneDefinitions.RootScenePath, LoadSceneMode.Single, ExtraBindings);
        }
        else
        {
            for (int i = 0; i < SceneManager.sceneCount; i++)
            {
                var scene = SceneManager.GetSceneAt(i);

                if (scene != mainScene)
                {
                    SceneManager.UnloadSceneAsync(scene);
                }
            }
        }

        _loader.LoadScene(parentCompositeScene.ScenePath, LoadSceneMode.Additive, null, LoadSceneRelationship.Child);
        OpenSubscenesRecursively(parentCompositeScene);
    }