diff --git a/spine-godot/spine_godot/SpineAttachment.h b/spine-godot/spine_godot/SpineAttachment.h index e547319d1..9d711656c 100644 --- a/spine-godot/spine_godot/SpineAttachment.h +++ b/spine-godot/spine_godot/SpineAttachment.h @@ -30,6 +30,7 @@ #pragma once #include "SpineCommon.h" +#include "spine/Attachment.h" #include class SpineSkeletonDataResource; @@ -46,4 +47,10 @@ public: String get_attachment_name(); Ref copy(); + + void set_spine_object(const SpineSkeletonDataResource *_owner, spine::Attachment *_object) { + if (get_spine_object()) get_spine_object()->dereference(); + _set_spine_object_internal(_owner, _object); + if (_object) _object->reference(); + } }; diff --git a/spine-godot/spine_godot/SpineCommon.h b/spine-godot/spine_godot/SpineCommon.h index e09384e86..d7e2fe002 100644 --- a/spine-godot/spine_godot/SpineCommon.h +++ b/spine-godot/spine_godot/SpineCommon.h @@ -145,7 +145,7 @@ class SpineSkeletonDataResource; template class SpineSkeletonDataResourceOwnedObject : public SpineObjectWrapper { public: - void set_spine_object(const SpineSkeletonDataResource *_owner, OBJECT *_object) { + virtual void set_spine_object(const SpineSkeletonDataResource *_owner, OBJECT *_object) { _set_spine_object_internal(_owner, _object); }