diff --git a/Source/Editor/Modules/SceneModule.cs b/Source/Editor/Modules/SceneModule.cs index 33d41ddd6..3e6662f6c 100644 --- a/Source/Editor/Modules/SceneModule.cs +++ b/Source/Editor/Modules/SceneModule.cs @@ -251,6 +251,15 @@ namespace FlaxEditor.Modules if (!Editor.StateMachine.CurrentState.CanChangeScene) return; + // In play-mode Editor mocks the level streaming script + if (Editor.IsPlayMode) + { + if (!additive) + Level.UnloadAllScenesAsync(); + Level.LoadSceneAsync(sceneId); + return; + } + if (!additive) { // Ensure to save all pending changes @@ -272,6 +281,13 @@ namespace FlaxEditor.Modules if (!Editor.StateMachine.CurrentState.CanChangeScene) return; + // In play-mode Editor mocks the level streaming script + if (Editor.IsPlayMode) + { + Level.UnloadSceneAsync(scene); + return; + } + // Ensure to save all pending changes if (CheckSaveBeforeClose()) return; @@ -289,6 +305,13 @@ namespace FlaxEditor.Modules if (!Editor.StateMachine.CurrentState.CanChangeScene) return; + // In play-mode Editor mocks the level streaming script + if (Editor.IsPlayMode) + { + Level.UnloadAllScenesAsync(); + return; + } + // Ensure to save all pending changes if (CheckSaveBeforeClose()) return; diff --git a/Source/Editor/States/PlayingState.cs b/Source/Editor/States/PlayingState.cs index 171022745..6258975ae 100644 --- a/Source/Editor/States/PlayingState.cs +++ b/Source/Editor/States/PlayingState.cs @@ -28,6 +28,9 @@ namespace FlaxEditor.States /// public override bool CanEditScene => true; + /// + public override bool CanChangeScene => true; + /// public override bool CanUseUndoRedo => false;