コード例 #1
0
    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());
        }
    }
コード例 #2
0
    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);
        }
    }
コード例 #3
0
    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);
        }
    }