

Your character enters an animation state and refuses to leave it. Or a transition starts but never completes. Sometimes the Animator looks correct in the graph, yet in Play Mode the state machine behaves differently.
When Animator transitions get stuck, the issue is almost always configuration-related. Below is a structured way to diagnose and fix it.
Select the transition arrow between states and inspect:
If Has Exit Time is enabled, the transition will not happen until the animation reaches the specified normalized time.
Common mistake: Exit Time is set to 1, but the animation loops. The state never reaches the required condition in the way you expect.
Fix:
If your transition depends on parameters (bool, trigger, float, int), confirm they are actually changing.
Add temporary debug logs:
Debug.Log(animator.GetBool("IsRunning"));
Very common issue:
Remember that triggers automatically reset after being consumed.
If multiple transitions leave the same state, Unity evaluates them in order.
If one condition is always true, it may block other transitions.
Inspect:
Remove unnecessary transitions while debugging.
If Transition Duration is too long, it may look like the state is stuck.
Try setting:
Short transitions make debugging easier.
Select the animation clip and check:
If an animation loops and Has Exit Time is enabled, the transition may never behave as expected.
If you are using multiple Animator layers:
A stuck animation may actually be overridden by another layer.
If Apply Root Motion is enabled, transitions may appear frozen because movement logic conflicts with animation-driven motion.
Test by temporarily disabling Apply Root Motion.
If you reassign the runtime controller during gameplay, the state machine resets.
Example risky code:
animator.runtimeAnimatorController = newController;
This immediately restarts the Animator state machine.
Each transition has an Interruption Source option.
If interruptions are disabled, the Animator may wait for a transition to complete before allowing another.
Experiment with:
Enter Play Mode and keep the Animator window open.
You can see:
This often reveals exactly where it gets stuck.
If a trigger keeps firing unexpectedly, manually reset it:
animator.ResetTrigger("Attack");
This prevents repeated transitions.
If a state transitions to itself, it can create looping behavior that looks like it is stuck.
Remove unnecessary self-transitions unless intentionally designed.
Very rarely. The Animator system is deterministic. If a transition is stuck, it means the required condition is never met, or another rule is blocking it.
Most issues come from:
Animator state machines are predictable once you understand the rules. When transitions get stuck, the problem is almost always in configuration, not in Unity itself.