Przeglądaj źródła

[csharp] Fixes completion event firing for 0 duration animations. See #1112.

badlogic 7 lat temu
rodzic
commit
0ad0fc4de8
1 zmienionych plików z 6 dodań i 4 usunięć
  1. 6 4
      spine-csharp/src/AnimationState.cs

+ 6 - 4
spine-csharp/src/AnimationState.cs

@@ -366,10 +366,12 @@ namespace Spine {
 			}
 
 			// Queue complete if completed a loop iteration or the animation.
-			if (entry.loop ? (trackLastWrapped > entry.trackTime % duration)
-				: (animationTime >= animationEnd && entry.animationLast < animationEnd)) {
-				queue.Complete(entry);
-			}
+			var complete = false;
+			if (entry.loop)
+				complete = duration == 0 || (trackLastWrapped > entry.trackTime % duration);
+			else
+				complete = animationTime >= animationEnd && entry.animationLast < animationEnd;
+			if (complete) queue.Complete(entry);
 
 			// Queue events after complete.
 			for (; i < n; i++) {