diff --git a/src/AtomAnimations/AtomAnimation.cs b/src/AtomAnimations/AtomAnimation.cs index 6ab58c3a..518b33db 100644 --- a/src/AtomAnimations/AtomAnimation.cs +++ b/src/AtomAnimations/AtomAnimation.cs @@ -235,7 +235,7 @@ public void PlayClips(string animationName, bool sequencing) PlayClip(clip, sequencing); } - public void PlayClip(AtomAnimationClip clip, bool sequencing) + public void PlayClip(AtomAnimationClip clip, bool sequencing, bool allowPreserveLoops = true) { if (clip.playbackEnabled && clip.playbackMainInLayer) return; if (!isPlaying) @@ -251,10 +251,9 @@ public void PlayClip(AtomAnimationClip clip, bool sequencing) if (previousMain != null && previousMain != clip) { if (previousMain.uninterruptible) - { return; - } - if (clip.loop && clip.preserveLoops && previousMain.loop) + + if (clip.loop && clip.preserveLoops && previousMain.loop && allowPreserveLoops) { previousMain.SetNext(clip.animationName, Mathf.Max(previousMain.animationLength - previousMain.clipTime, 0f)); } diff --git a/src/PeerManager.cs b/src/PeerManager.cs index 779ba06f..b8a29234 100644 --- a/src/PeerManager.cs +++ b/src/PeerManager.cs @@ -174,7 +174,7 @@ private void ReceiveMasterClipState(object[] e) foreach (var clip in GetClips(e)) { if (clip == null || clip.playbackEnabled) return; - animation.PlayClip(clip, true); + animation.PlayClip(clip, true, false); } }