diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs index 910a8fa69..958ed60d2 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs @@ -238,6 +238,11 @@ namespace Spine.Unity { bool needToReprocessBones; public void ResubscribeEvents () { + ResubscribeIndependentEvents(); + ResubscribeDependentEvents(); + } + + void ResubscribeIndependentEvents () { if (skeletonRenderer != null) { skeletonRenderer.OnRebuild -= HandleRendererReset; skeletonRenderer.OnRebuild += HandleRendererReset; @@ -250,10 +255,15 @@ namespace Spine.Unity { if (skeletonAnimation != null) { skeletonAnimation.UpdateLocal -= UpdateLocal; + skeletonAnimation.UpdateLocal += UpdateLocal; + } + } + + void ResubscribeDependentEvents () { + if (skeletonAnimation != null) { skeletonAnimation.UpdateWorld -= UpdateWorld; skeletonAnimation.UpdateComplete -= UpdateComplete; - skeletonAnimation.UpdateLocal += UpdateLocal; if (hasOverrideBones || hasConstraints) skeletonAnimation.UpdateWorld += UpdateWorld; if (hasConstraints) @@ -369,6 +379,7 @@ namespace Spine.Unity { boneComponents.Clear(); constraintComponents.Clear(); } + ResubscribeDependentEvents(); } void UpdateLocal (ISkeletonAnimation anim) {