diff --git a/crates/bevy_animation/src/transition.rs b/crates/bevy_animation/src/transition.rs index f419f6e9c9..77e8fdfef5 100644 --- a/crates/bevy_animation/src/transition.rs +++ b/crates/bevy_animation/src/transition.rs @@ -92,7 +92,11 @@ impl AnimationTransitions { } } - self.main_animation = Some(new_animation); + // If already transitioning away from this animation, cancel the transition. + // Otherwise the transition ending would incorrectly stop the new animation. + self.transitions + .retain(|transition| transition.animation != new_animation); + player.start(new_animation) }