Search Issue Tracker
By Design
Votes
6
Found in
2018.4
2020.1.9f1
2021.1
Issue ID
1287755
Regression
No
Transitions in the Base layer get ignored after the transition to the Exit node in the Sub-State Machine gets executed
How to reproduce:
1. Open the attached '1287755.zip' project
2. Open 'SampleScene'
3. In the Project window double-click on the 'Test' Animator Controller
4. In the Animator window disable 'Auto Live Link'
5. In the Hierarchy window select 'Cube'
6. Enter the Play mode
7. Observe the Animator window
Expected result: The transition from the Entry node to 'State2' gets executed
Actual result: The transition from the Entry node to 'State2' does not get executed
Reproducible with: 2018.4.29f1, 2019.4.15f1, 2020.1.14f1, 2020.2.0b11, 2021.1.0a6
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Rigidbody2D.Slide API does not have the needed configuration when creating a 2D Top-Down character controller
- Opening reference for "Playables"component redirects to a missing page
- Sprite Renderer image is changed when switching Mask Interaction and changing Sprite to a shared Sprite
- An unsigned integer is not compared with an integer correctly in player when using IL2CPP backend
- Graphical artifacts are being rendered in Scenes that are loaded during run-time when GPU Resident Drawer is turned on
Resolution Note (2021.1.X):
By design, when making a transition in a sub state machine from a state, to the upper layer state, it's as if the transition was made to the entry state, which gives the wanted behavior here.
On the other hand, with a transition in a sub state machine from a state to the exit state, it will go back to the state machine in the base layer, and see if this state machine has any transition. If not (like in the given project), it will simply choose the default state, which is why the sub state machine gets replayed.
We cannot change this, as it may break many projects assuming the default state is played when exiting a sub state machine