Don't trigger animation events when paused (#15677)

# Objective

Pausing the `animated_fox` example perfectly as one of the feet hits the
ground causes the event to be triggered every frame.

Context: #15538

## Solution

Don't trigger animation events if the animation is paused.

## Testing

Ran the example, I no longer see the issue.
This commit is contained in:
poopy 2024-10-06 20:57:07 +02:00 committed by GitHub
parent 6edb78a8c3
commit 70269ef758
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1143,25 +1143,27 @@ pub fn animate_targets(
continue;
};
// Trigger all animation events that occurred this tick, if any.
if let Some(triggered_events) = TriggeredEvents::from_animation(
AnimationEventTarget::Node(target_id),
clip,
active_animation,
) {
if !triggered_events.is_empty() {
par_commands.command_scope(move |mut commands| {
for TimedAnimationEvent { time, event } in
triggered_events.iter()
{
commands.queue(trigger_animation_event(
entity,
*time,
active_animation.weight,
event.clone().0,
));
}
});
if !active_animation.paused {
// Trigger all animation events that occurred this tick, if any.
if let Some(triggered_events) = TriggeredEvents::from_animation(
AnimationEventTarget::Node(target_id),
clip,
active_animation,
) {
if !triggered_events.is_empty() {
par_commands.command_scope(move |mut commands| {
for TimedAnimationEvent { time, event } in
triggered_events.iter()
{
commands.queue(trigger_animation_event(
entity,
*time,
active_animation.weight,
event.clone().0,
));
}
});
}
}
}