From 195c65ffd93787f6c23141867f8a2293d459705c Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Tue, 30 Jul 2024 17:14:18 +0200 Subject: [PATCH] [unity] Fixed SkeletonUtilityConstraint subclasses not updating. Closes #2587. --- .../Components/SkeletonUtility/SkeletonUtility.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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) {