Fix scripting reload without scenes loaded

#375
This commit is contained in:
Wojtek Figat
2021-03-22 23:41:21 +01:00
parent 319bee0838
commit fcd86bccf5
2 changed files with 24 additions and 16 deletions

View File

@@ -18,6 +18,7 @@ namespace FlaxEditor.Windows.Assets
private readonly CustomEditorPresenter _presenter;
private readonly ToolStripButton _saveButton;
private object _object;
private bool _isRegisteredForScriptsReload;
/// <inheritdoc />
public JsonAssetWindow(Editor editor, AssetItem item)
@@ -43,7 +44,6 @@ namespace FlaxEditor.Windows.Assets
private void OnScriptsReloadBegin()
{
Close();
ScriptsBuilder.ScriptsReloadBegin -= OnScriptsReloadBegin;
}
/// <inheritdoc />
@@ -83,8 +83,11 @@ namespace FlaxEditor.Windows.Assets
ClearEditedFlag();
// Auto-close on scripting reload if json asset is from game scripts (it might be reloaded)
if (_object != null && FlaxEngine.Scripting.IsTypeFromGameScripts(_object.GetType()))
if (_object != null && FlaxEngine.Scripting.IsTypeFromGameScripts(_object.GetType()) && !_isRegisteredForScriptsReload)
{
_isRegisteredForScriptsReload = true;
ScriptsBuilder.ScriptsReloadBegin += OnScriptsReloadBegin;
}
base.OnAssetLoaded();
}
@@ -98,5 +101,17 @@ namespace FlaxEditor.Windows.Assets
base.OnItemReimported(item);
}
/// <inheritdoc />
public override void OnDestroy()
{
if (_isRegisteredForScriptsReload)
{
_isRegisteredForScriptsReload = false;
ScriptsBuilder.ScriptsReloadBegin -= OnScriptsReloadBegin;
}
base.OnDestroy();
}
}
}