Add missing event unregister for foliage/terrain tabs
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void OnDestroy()
|
||||
{
|
||||
if (_createNewFoliage.Enabled)
|
||||
Level.SceneUnloaded -= OnSceneUnloaded;
|
||||
else
|
||||
Level.SceneLoaded -= OnSceneLoaded;
|
||||
|
||||
base.OnDestroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void OnDestroy()
|
||||
{
|
||||
if (_createTerrainButton.Enabled)
|
||||
Level.SceneUnloaded -= OnSceneUnloaded;
|
||||
else
|
||||
Level.SceneLoaded -= OnSceneLoaded;
|
||||
|
||||
base.OnDestroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user