Fix crash on scripting reload when using Anim Graph with custom nodes
This commit is contained in:
@@ -119,8 +119,9 @@ bool AnimGraph::Load(ReadStream* stream, bool loadMeta)
|
||||
|
||||
// Register for scripts reloading events (only if using any custom nodes)
|
||||
// Handle load event always because anim graph asset may be loaded before game scripts
|
||||
if (_customNodes.HasItems())
|
||||
if (_customNodes.HasItems() && !_isRegisteredForScriptingEvents)
|
||||
{
|
||||
_isRegisteredForScriptingEvents = true;
|
||||
#if USE_EDITOR
|
||||
Scripting::ScriptsReloading.Bind<AnimGraph, &AnimGraph::OnScriptsReloading>(this);
|
||||
Scripting::ScriptsReloaded.Bind<AnimGraph, &AnimGraph::OnScriptsReloaded>(this);
|
||||
@@ -131,6 +132,19 @@ bool AnimGraph::Load(ReadStream* stream, bool loadMeta)
|
||||
return false;
|
||||
}
|
||||
|
||||
AnimGraph::~AnimGraph()
|
||||
{
|
||||
// Unregister for scripts reloading events (only if using any custom nodes)
|
||||
if (_isRegisteredForScriptingEvents)
|
||||
{
|
||||
#if USE_EDITOR
|
||||
Scripting::ScriptsReloading.Unbind<AnimGraph, &AnimGraph::OnScriptsReloading>(this);
|
||||
Scripting::ScriptsReloaded.Unbind<AnimGraph, &AnimGraph::OnScriptsReloaded>(this);
|
||||
#endif
|
||||
Scripting::ScriptsLoaded.Unbind<AnimGraph, &AnimGraph::OnScriptsLoaded>(this);
|
||||
}
|
||||
}
|
||||
|
||||
bool AnimGraph::onParamCreated(Parameter* p)
|
||||
{
|
||||
if (p->Identifier == ANIM_GRAPH_PARAM_BASE_MODEL_ID)
|
||||
|
||||
Reference in New Issue
Block a user