public void OnGUI() { Refresh(); Scene activeScene = EditorSceneManager.GetActiveScene(); foreach (string path in _scenePaths) { Scene scene = SceneManager.GetSceneByPath(path); bool isActiveScene = activeScene == scene; EditorGUI.BeginDisabledGroup(isActiveScene); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(CoreEditorUtils.GetSceneNameFromPath(path)); if (GUILayout.Button("Import")) { ImportScene(path); } if (GUILayout.Button("Open")) { OpenScene(path); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndHorizontal(); } }
public void Export() { GameObject screenToMove = GameObject.Instantiate(_loadedScreenCache._duplicateScreen); screenToMove.name = _loadedScreenCache._duplicateScreen.name; screenToMove.SetActive(false); if (_scene.isLoaded) { foreach (GameObject rootObject in _scene.GetRootGameObjects()) { _screenController = rootObject.GetComponent <ScreenView>(); if (_screenController != null) { GameObject.DestroyImmediate(_screenController.gameObject); break; } } } EditorSceneManager.MoveGameObjectToScene(screenToMove, _scene); EditorSceneManager.SaveScene(_scene); }
private void ImportScene(string path) { EditorSceneManager.OpenScene(path, UnityEditor.SceneManagement.OpenSceneMode.Additive); Scene scene = SceneManager.GetSceneByPath(path); Scene activeScene = EditorSceneManager.GetActiveScene(); EditorSceneManager.MergeScenes(scene, activeScene); }
static void ExitFromEdit() { if (!ESM.SaveCurrentModifiedScenesIfUserWantsTo()) { CancelPlayMode = true; return; } SceneSetups = ESM.GetSceneManagerSetup(); ESM.OpenScene(SceneUtility.GetScenePathByBuildIndex(0), OpenSceneMode.Single); }
public UniTask AddingAsync(Scenes scene, Action <DiContainer> extraBindings = null) { var sceneAsset = GetScenes(scene.ToString()); if (sceneAsset == null) { Debug.LogWarning("Scene Load Warrning : Loaded Scene"); return(UniTask.CompletedTask); } SceneManager.OpenScene(AssetDatabase.GetAssetPath(sceneAsset), OpenSceneMode.Additive); return(UniTask.CompletedTask); }
public UniTask RemoveAsync(Scenes scene) { var isSharedMainExists = false; var scenePath = ""; for (var index = 0; index < SceneManager.sceneCount; index++) { var sceneAt = SceneManager.GetSceneAt(index); isSharedMainExists = sceneAt.isLoaded && sceneAt.name == scene.ToString(); scenePath = sceneAt.path; } if (!isSharedMainExists) { return(UniTask.CompletedTask); } SceneManager.UnloadSceneAsync(scenePath); return(UniTask.CompletedTask); }
private void ImportScene(string path) { WindowView windowController = GameObject.FindObjectOfType <WindowView>(); if (windowController == null) { Debug.LogError("WindowController not found in scene."); return; } Scene scene = EditorSceneManager.OpenScene(path, UnityEditor.SceneManagement.OpenSceneMode.Additive); Scene activeScene = EditorSceneManager.GetActiveScene(); ScreenView screenController = null; //EditorSceneManager.MergeScenes(scene, activeScene); GameObject[] rootObjects = scene.GetRootGameObjects(); foreach (GameObject rootObject in rootObjects) { screenController = rootObject.GetComponent <ScreenView>(); if (screenController != null) { break; } } if (screenController == null) { Debug.LogError("ScreenController not found in loaded scene. "); SceneManager.UnloadSceneAsync(scene); return; } else { if (_loadedScreenCache == null) { GameObject cache = new GameObject("Cache"); _loadedScreenCache = cache.AddComponent <LoadedScreenCache>(); } _loadedScreen = new LoadedScreen(scene, screenController, _loadedScreenCache); GameObject duplicateScreen = _loadedScreen.GetDuplicateScreen(); duplicateScreen.transform.SetParent(windowController.transform, false); RectTransform rectTransform = duplicateScreen.GetComponent <RectTransform>(); if (rectTransform) { rectTransform.anchorMin = Vector2.zero; rectTransform.anchorMax = Vector2.one; rectTransform.offsetMax = Vector2.zero; rectTransform.offsetMin = Vector2.zero; rectTransform.hasChanged = false; } _loadedScreenCache.scenePath = scene.path; _loadedScreenCache._duplicateScreen = duplicateScreen; screenController.gameObject.SetActive(false); } }
private void OpenScene(string path) { EditorSceneManager.OpenScene(path); }
static void EnterToEdit() { ESM.RestoreSceneManagerSetup(SceneSetups); SceneSetups = null; }
public static void MoveSceneAfter(Scene src, Scene dst) { EditorSceneManager.INTERNAL_CALL_MoveSceneAfter(ref src, ref dst); }
public static bool CloseScene(Scene scene, bool removeScene) { return(EditorSceneManager.INTERNAL_CALL_CloseScene(ref scene, removeScene)); }
public static bool MarkSceneDirty(Scene scene) { return(EditorSceneManager.INTERNAL_CALL_MarkSceneDirty(ref scene)); }
public static bool SaveScene(Scene scene, string dstScenePath) { bool saveAsCopy = false; return(EditorSceneManager.INTERNAL_CALL_SaveScene(ref scene, dstScenePath, saveAsCopy)); }
public static bool SaveScene(Scene scene, [DefaultValue("\"\"")] string dstScenePath, [DefaultValue("false")] bool saveAsCopy) { return(EditorSceneManager.INTERNAL_CALL_SaveScene(ref scene, dstScenePath, saveAsCopy)); }
internal static bool SaveSceneAs(Scene scene) { return(EditorSceneManager.INTERNAL_CALL_SaveSceneAs(ref scene)); }