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
- Out-of-bounds memory access with multiple CanvasRenderers under a Canvas when using Mesh API
- Inspector tries to access file after it was deleted when the file was locked in Inspector window
- Changing Transform values in Search window Inspector loses focus while dragging and stopping mouse without releasing dragging action
- Saving changes on the dirty VFX Graph during the Play mode throws "The referenced script (Unknown) on this Behaviour is missing!" warnings
- VFX Graph Debug Info overlaps the "Initialize" block debug info by default
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