private static void SceneLoaded(Scene scene, LoadSceneMode mode) { if (Application.isPlaying) { DiggerMasterEditor.OnEnterPlayMode(scene); } }
static SceneManagerEventHandler() { currentScene = SceneManager.GetActiveScene(); EditorApplication.hierarchyChanged += HierarchyWindowChanged; SceneManager.sceneLoaded += (scene, mode) => { if (scene.IsValid() && scene.isLoaded) { DiggerMasterEditor.LoadAllChunks(scene); } }; }
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); } } }
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(); }