Search Issue Tracker
Fixed in 5.6.0
Votes
1
Found in
5.3.4p1
Issue ID
826180
Regression
No
[Mecanim] [Animation] When an interrupted transition occurs the OnStateExit for the next state currently playing is never called
We have a transition from state A to state B, with a reasonably long transition time (probably about 0.5s), and it allows interruptions (Interruption Source: Current State then Next State). There is an Any State transition to state C, with a trigger condition on it. State B has a State Machine Behaviour script attached to it.
If the condition for the transition from A to B is met, we begin transitioning from A to B, and we get B.OnStateEnter() being called. If the trigger condition for the Any State transition to state C becomes true before we have completed the transition to B, however, we transition to state C without seeing B.OnStateExit().
This resulted in things that we set up in OnStateEnter not being properly reset/cleared in OnStateExit.
To repro:
1: Open attached project
2: Enter play mode for Main scene
3: Inspect Animator attached to Test GameObject
4: Activate the GoAToB Trigger to start a 10 second transition from A to B, see OnStateEntry is called for B (printed to console)
5: Activate GoC Trigger (during the transition from A to B, to interrupt it) to do the Any State to C transition
6: OnStateExit is called for A but not for B (see console)
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Android][BiRP] Depth processing is handled incorrectly on certain Android devices when using 2 camera's
- [APV] Cancelling Display Dialog Error is thrown after Adaptive Probe Volumes tab is open in Lighting Window
- [APV] NullReferenceException is thrown when baking Adaptive Probe Volume for a Terrain with Non-GI Contributing Tree Prototypes and multiple APV objects with different LayerMasks are present on the scene
- Hands are not recognized when using Hololens 2
- "OnTriggerExit2D" is called before "OnTriggerEnter2D" when object is destroyed immediately
Add comment