diff --git a/Source/Editor/Tools/Foliage/FoliageTab.cs b/Source/Editor/Tools/Foliage/FoliageTab.cs index bbad9018b..fe4120035 100644 --- a/Source/Editor/Tools/Foliage/FoliageTab.cs +++ b/Source/Editor/Tools/Foliage/FoliageTab.cs @@ -100,7 +100,7 @@ namespace FlaxEditor.Tools.Foliage public FoliageTab(SpriteHandle icon, Editor editor) : base(string.Empty, icon) { - Level.SceneLoaded += this.OnSceneLoaded; + Level.SceneLoaded += OnSceneLoaded; Editor = editor; Editor.SceneEditing.SelectionChanged += OnSelectionChanged; @@ -152,7 +152,7 @@ namespace FlaxEditor.Tools.Foliage { _createNewFoliage.Enabled = true; - Level.SceneUnloaded += this.OnSceneUnloaded; + Level.SceneUnloaded += OnSceneUnloaded; Level.SceneLoaded -= OnSceneLoaded; } @@ -161,7 +161,7 @@ namespace FlaxEditor.Tools.Foliage _createNewFoliage.Enabled = false; Level.SceneLoaded += OnSceneLoaded; - Level.SceneUnloaded -= this.OnSceneUnloaded; + Level.SceneUnloaded -= OnSceneUnloaded; } private void OnSelected(Tab tab) @@ -267,5 +267,16 @@ namespace FlaxEditor.Tools.Foliage { SelectedFoliageTypesChanged?.Invoke(); } + + /// + public override void OnDestroy() + { + if (_createNewFoliage.Enabled) + Level.SceneUnloaded -= OnSceneUnloaded; + else + Level.SceneLoaded -= OnSceneLoaded; + + base.OnDestroy(); + } } } diff --git a/Source/Editor/Tools/Terrain/CarveTab.cs b/Source/Editor/Tools/Terrain/CarveTab.cs index 37ce82c1f..e7b880414 100644 --- a/Source/Editor/Tools/Terrain/CarveTab.cs +++ b/Source/Editor/Tools/Terrain/CarveTab.cs @@ -58,7 +58,7 @@ namespace FlaxEditor.Tools.Terrain public CarveTab(SpriteHandle icon, Editor editor) : base(string.Empty, icon) { - Level.SceneLoaded += this.OnSceneLoaded; + Level.SceneLoaded += OnSceneLoaded; Editor = editor; Editor.SceneEditing.SelectionChanged += OnSelectionChanged; @@ -105,12 +105,12 @@ namespace FlaxEditor.Tools.Terrain }; _createTerrainButton.Clicked += OnCreateNewTerrainClicked; } - + private void OnSceneLoaded(Scene arg1, Guid arg2) { _createTerrainButton.Enabled = true; - Level.SceneUnloaded += this.OnSceneUnloaded; + Level.SceneUnloaded += OnSceneUnloaded; Level.SceneLoaded -= OnSceneLoaded; } @@ -119,7 +119,7 @@ namespace FlaxEditor.Tools.Terrain _createTerrainButton.Enabled = false; Level.SceneLoaded += OnSceneLoaded; - Level.SceneUnloaded -= this.OnSceneUnloaded; + Level.SceneUnloaded -= OnSceneUnloaded; } private void OnSelected(Tab tab) @@ -202,5 +202,16 @@ namespace FlaxEditor.Tools.Terrain default: throw new IndexOutOfRangeException("Invalid carve tab mode."); } } + + /// + public override void OnDestroy() + { + if (_createTerrainButton.Enabled) + Level.SceneUnloaded -= OnSceneUnloaded; + else + Level.SceneLoaded -= OnSceneLoaded; + + base.OnDestroy(); + } } }