private static void DoOpenChunkInMainScene() { EditorLogger.NotifyAndLog("Opening Chunk in the Main Scene"); var chunkScene = SceneManager.GetActiveScene(); var scene = EditorSceneManager.OpenScene( MainSceneIndexEditor.MainScene.path, OpenSceneMode.Additive ); SceneManager.SetActiveScene(scene); var chunk = Object.FindObjectsOfType <Chunk>() .FirstOrDefault(c => chunkScene.name.ToUpper().Contains(c.ChunkName.ToUpper())); if (chunk == null) { EditorLogger.NotifyAndLogWarning("No chunk object in the Main Scene references the current scene"); EditorSceneManager.SaveModifiedScenesIfUserWantsTo(new[] { scene }); EditorSceneManager.CloseScene(scene, true); } else { chunk.RelocateChunkObjectsToChunk(chunkScene.GetRootGameObjects()); } }
private static void DoCloseChunksInMainScene() { EditorLogger.NotifyAndLog("Closing all Chunks in the Main Scene"); foreach (var scene in MyEditorSceneManager.GetOpenScenes().Where(s => s.buildIndex != MainSceneIndexEditor.MainSceneIndex)) { EditorSceneManager.SaveModifiedScenesIfUserWantsTo(new[] { scene }); EditorSceneManager.CloseScene(scene, true); } }
private static void DoOpenChunksInMainScene() { EditorLogger.NotifyAndLog("Opening all Chunks in the Main Scene"); var chunks = Object.FindObjectsOfType <Chunk>(); foreach (var chunk in chunks) { OpenChunk(chunk); } }