diff --git a/Source/Editor/Modules/SceneModule.cs b/Source/Editor/Modules/SceneModule.cs index 7789eb7c4..4fb28ac76 100644 --- a/Source/Editor/Modules/SceneModule.cs +++ b/Source/Editor/Modules/SceneModule.cs @@ -266,6 +266,19 @@ namespace FlaxEditor.Modules Editor.StateMachine.ChangingScenesState.LoadScene(sceneId, additive); } + /// + /// Reload all loaded scenes. + /// + public void ReloadScenes() + { + foreach (var scene in Level.Scenes) + { + var sceneId = scene.ID; + if (!Level.UnloadScene(scene)) + Level.LoadScene(sceneId); + } + } + /// /// Closes scene (async). /// diff --git a/Source/Editor/Modules/UIModule.cs b/Source/Editor/Modules/UIModule.cs index 1369ecd1e..55c318a97 100644 --- a/Source/Editor/Modules/UIModule.cs +++ b/Source/Editor/Modules/UIModule.cs @@ -39,6 +39,7 @@ namespace FlaxEditor.Modules ContextMenuSingleSelectGroup _numberOfClientsGroup = new ContextMenuSingleSelectGroup(); private ContextMenuButton _menuFileSaveScenes; + private ContextMenuButton _menuFileReloadScenes; private ContextMenuButton _menuFileCloseScenes; private ContextMenuButton _menuFileOpenScriptsProject; private ContextMenuButton _menuFileGenerateScriptsProjectFiles; @@ -525,6 +526,9 @@ namespace FlaxEditor.Modules var cm = MenuFile.ContextMenu; cm.VisibleChanged += OnMenuFileShowHide; _menuFileSaveAll = cm.AddButton("Save All", inputOptions.Save, Editor.SaveAll); + cm.AddSeparator(); + _menuFileReloadScenes = cm.AddButton("Reload Scenes", Editor.Scene.ReloadScenes); + cm.AddSeparator(); _menuFileSaveScenes = cm.AddButton("Save scenes", inputOptions.SaveScenes, Editor.Scene.SaveScenes); _menuFileCloseScenes = cm.AddButton("Close scenes", inputOptions.CloseScenes, Editor.Scene.CloseAllScenes); cm.AddSeparator();