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();