public static void OpenSubScenesRecursivelyEditor(CompositeScene scene) { foreach (var child in scene.SubScenes) { EditorSceneManager.OpenScene(child.ScenePath, OpenSceneMode.Additive); OpenSubScenesRecursivelyEditor(child); } }
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]); } }
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); }
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); }