summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scene/animation/animation_node_state_machine.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/scene/animation/animation_node_state_machine.cpp b/scene/animation/animation_node_state_machine.cpp
index ec44641484..5d50eb4800 100644
--- a/scene/animation/animation_node_state_machine.cpp
+++ b/scene/animation/animation_node_state_machine.cpp
@@ -924,15 +924,16 @@ bool AnimationNodeStateMachinePlayback::_transition_to_next_recursive(AnimationT
transition_path.push_back(current);
while (true) {
next = _find_next(p_tree, p_state_machine);
- if (transition_path.has(next.node)) {
- WARN_PRINT_ONCE_ED("AnimationNodeStateMachinePlayback: " + base_path + "playback aborts the transition by detecting one or more looped transitions in the same frame to prevent to infinity loop. You may need to check the transition settings.");
- break; // Maybe infinity loop, do nothing more.
- }
if (!_can_transition_to_next(p_tree, p_state_machine, next, p_test_only)) {
break; // Finish transition.
}
+ if (transition_path.has(next.node)) {
+ WARN_PRINT_ONCE_ED("AnimationNodeStateMachinePlayback: " + base_path + "playback aborts the transition by detecting one or more looped transitions in the same frame to prevent to infinity loop. You may need to check the transition settings.");
+ break; // Maybe infinity loop, do nothing more.
+ }
+
transition_path.push_back(next.node);
is_state_changed = true;