From 3e3b0e795156b2c6a01dcd1bc956a04ca90446c7 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 18 May 2021 23:32:50 +0200 Subject: [PATCH] Fix game plugins initialization order in Editor play mode to mock the standalone game #458 --- Source/Editor/States/PlayingState.cs | 6 ++---- Source/Engine/Scripting/Plugins/PluginManager.cs | 12 ++++-------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/Source/Editor/States/PlayingState.cs b/Source/Editor/States/PlayingState.cs index bcc982235..6b946b23e 100644 --- a/Source/Editor/States/PlayingState.cs +++ b/Source/Editor/States/PlayingState.cs @@ -131,12 +131,11 @@ namespace FlaxEditor.States _duplicateScenes.GatherSceneData(); Editor.Internal_SetPlayMode(true); IsPaused = false; + PluginManager.InitializeGamePlugins(); _duplicateScenes.CreateScenes(); SceneDuplicated?.Invoke(); RestoreSelection(); - PluginManager.InitializeGamePlugins(); - Editor.OnPlayBegin(); } @@ -165,6 +164,7 @@ namespace FlaxEditor.States // Restore editor scene SceneRestoring?.Invoke(); _duplicateScenes.DeletedScenes(); + PluginManager.DeinitializeGamePlugins(); Editor.Internal_SetPlayMode(false); _duplicateScenes.RestoreSceneData(); SceneRestored?.Invoke(); @@ -177,8 +177,6 @@ namespace FlaxEditor.States IsPaused = true; RestoreSelection(); - PluginManager.DeinitializeGamePlugins(); - Editor.OnPlayEnd(); } } diff --git a/Source/Engine/Scripting/Plugins/PluginManager.cs b/Source/Engine/Scripting/Plugins/PluginManager.cs index e6da10e2f..da0d7642d 100644 --- a/Source/Engine/Scripting/Plugins/PluginManager.cs +++ b/Source/Engine/Scripting/Plugins/PluginManager.cs @@ -82,10 +82,8 @@ namespace FlaxEngine //return !pluginDesc.DisabledByDefault; } - /// - /// Initialize all - /// - public static void InitializeGamePlugins() +#if FLAX_EDITOR + internal static void InitializeGamePlugins() { for (var i = 0; i < _gamePlugins.Count; i++) { @@ -93,16 +91,14 @@ namespace FlaxEngine } } - /// - /// Deinitialize all - /// - public static void DeinitializeGamePlugins() + internal static void DeinitializeGamePlugins() { for (var i = _gamePlugins.Count - 1; i >= 0; i--) { InvokeDeinitialize(_gamePlugins[i]); } } +#endif private static void InvokeInitialize(Plugin plugin) {