From b2f22b2d87e4754aba8d1bee713149f4b5eb2b33 Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Tue, 23 Aug 2022 09:39:43 +0200 Subject: [PATCH] Add `EditorPlugin.DeinitializeEditor` to properly cleanup Editor extensions on exit --- Source/Editor/Editor.cs | 4 ++++ Source/Editor/Plugins/EditorPlugin.cs | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/Source/Editor/Editor.cs b/Source/Editor/Editor.cs index fc6d72ee9..fabea9033 100644 --- a/Source/Editor/Editor.cs +++ b/Source/Editor/Editor.cs @@ -569,6 +569,10 @@ namespace FlaxEditor { Log("Editor exit"); + // Deinitialize Editor Plugins + foreach (var plugin in PluginManager.EditorPlugins) + ((EditorPlugin)plugin).DeinitializeEditor(); + // Start exit StateMachine.GoToState(); diff --git a/Source/Editor/Plugins/EditorPlugin.cs b/Source/Editor/Plugins/EditorPlugin.cs index 7860426e9..cf22ff7af 100644 --- a/Source/Editor/Plugins/EditorPlugin.cs +++ b/Source/Editor/Plugins/EditorPlugin.cs @@ -52,5 +52,12 @@ namespace FlaxEditor public virtual void InitializeEditor() { } + + /// + /// Cleanup method called when this plugin is initialized and Editor is disposing (before plugin disposing). Use this method to remove any custom editor functionalities created within InitializeEditor. + /// + public virtual void DeinitializeEditor() + { + } } }