瀏覽代碼

[unity] Fixed Timeline SpineAnimationStateClip ignoring seek and loop. Closes #2316. Removed redundant multiple skeleton updates when multiple animations are started.

Harald Csaszar 2 年之前
父節點
當前提交
d4cc16315f

+ 3 - 4
spine-unity/Modules/com.esotericsoftware.spine.timeline/Runtime/SpineAnimationState/SpineAnimationStateMixerBehaviour.cs

@@ -165,7 +165,7 @@ namespace Spine.Unity.Playables {
 			for (int i = 0; i < inputCount; i++) {
 			for (int i = 0; i < inputCount; i++) {
 				float lastInputWeight = lastInputWeights[i];
 				float lastInputWeight = lastInputWeights[i];
 				float inputWeight = playable.GetInputWeight(i);
 				float inputWeight = playable.GetInputWeight(i);
-				bool clipStarted = lastInputWeight == 0 && inputWeight > 0;
+				bool clipStarted = (lastInputWeight == 0 && inputWeight > 0) || info.seekOccurred || info.timeLooped;
 				if (inputWeight > 0)
 				if (inputWeight > 0)
 					anyClipPlaying = true;
 					anyClipPlaying = true;
 				lastInputWeights[i] = inputWeight;
 				lastInputWeights[i] = inputWeight;
@@ -231,10 +231,9 @@ namespace Spine.Unity.Playables {
 
 
 						timelineStartedTrackEntry = trackEntry;
 						timelineStartedTrackEntry = trackEntry;
 					}
 					}
-					//else Debug.LogWarningFormat("Animation named '{0}' not found", clipData.animationName);
 				}
 				}
-
-				// Ensure that the first frame ends with an updated mesh.
+			}
+			if (numStartingClips > 0) {
 				if (skeletonAnimation) {
 				if (skeletonAnimation) {
 					skeletonAnimation.Update(0);
 					skeletonAnimation.Update(0);
 					skeletonAnimation.LateUpdate();
 					skeletonAnimation.LateUpdate();

+ 1 - 1
spine-unity/Modules/com.esotericsoftware.spine.timeline/package.json

@@ -2,7 +2,7 @@
 	"name": "com.esotericsoftware.spine.timeline",
 	"name": "com.esotericsoftware.spine.timeline",
 	"displayName": "Spine Timeline Extensions",
 	"displayName": "Spine Timeline Extensions",
 	"description": "This plugin provides integration of spine-unity for the Unity Timeline.\n\nPrerequisites:\nIt requires a working installation of the spine-unity and spine-csharp runtimes as UPM packages (not as spine-unity unitypackage), version 4.1.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)",
 	"description": "This plugin provides integration of spine-unity for the Unity Timeline.\n\nPrerequisites:\nIt requires a working installation of the spine-unity and spine-csharp runtimes as UPM packages (not as spine-unity unitypackage), version 4.1.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)",
-	"version": "4.1.9",
+	"version": "4.1.10",
 	"unity": "2018.3",
 	"unity": "2018.3",
 	"author": {
 	"author": {
 		"name": "Esoteric Software",
 		"name": "Esoteric Software",