示例#1
0
 private static void SceneLoaded(Scene scene, LoadSceneMode mode)
 {
     if (Application.isPlaying)
     {
         DiggerMasterEditor.OnEnterPlayMode(scene);
     }
 }
示例#2
0
 static SceneManagerEventHandler()
 {
     currentScene = SceneManager.GetActiveScene();
     EditorApplication.hierarchyChanged += HierarchyWindowChanged;
     SceneManager.sceneLoaded           += (scene, mode) => {
         if (scene.IsValid() && scene.isLoaded)
         {
             DiggerMasterEditor.LoadAllChunks(scene);
         }
     };
 }
示例#3
0
 private static void HierarchyWindowChanged()
 {
     if (currentScene != SceneManager.GetActiveScene())
     {
         Debug.Log($"[Digger] switched scene from {currentScene.name} to {SceneManager.GetActiveScene().name}");
         NativeCollectionsPool.Instance.Dispose();
         currentScene = SceneManager.GetActiveScene();
         if (currentScene.IsValid() && currentScene.isLoaded)
         {
             DiggerMasterEditor.CheckDiggerVersion();
             DiggerMasterEditor.LoadAllChunks(currentScene);
         }
     }
 }
示例#4
0
        private static void LogPlayModeState(PlayModeStateChange state)
        {
            switch (state)
            {
            case PlayModeStateChange.EnteredEditMode:
            {
                for (var i = 0; i < SceneManager.sceneCount; ++i)
                {
                    var scene = SceneManager.GetSceneAt(i);
                    if (scene.IsValid() && scene.isLoaded)
                    {
                        DiggerMasterEditor.LoadAllChunks(scene);
                    }
                }

                break;
            }

            case PlayModeStateChange.ExitingEditMode:
            {
                NativeCollectionsPool.Instance.Dispose();

                for (var i = 0; i < SceneManager.sceneCount; ++i)
                {
                    var scene = SceneManager.GetSceneAt(i);
                    if (scene.IsValid() && scene.isLoaded)
                    {
                        DiggerMasterEditor.OnEnterPlayMode(scene);
                    }
                }

                break;
            }

            case PlayModeStateChange.ExitingPlayMode:
                NativeCollectionsPool.Instance.Dispose();
                break;
            }
        }
 /// <summary>
 /// Remove Digger from current scene
 /// </summary>
 public static void GX_Terrain_RemoveDiggerFromScene()
 {
     DiggerMasterEditor.RemoveDiggerFromTerrains();
 }
 /// <summary>
 /// Setup Terrain
 /// </summary>
 public static void GX_Terrain_SetupTerrain()
 {
     DiggerMasterEditor.SetupTerrains();
 }