I’ve seen multiple threads online regarding this issue since version 5 of Unity (~2014).
When blending between two clips, the event triggers will not be fired, if the event is during a blending phase.
E.g. you place an event at the last key-frame of a clip and blend from this animation to another. It will be skipped.
I feel this causes a lot of headaches, especially for newcomers. As there is no feedback from the Animator Controller, or console - that an event was skipped due to blending out before it being able to fire.
I myself had invested a lot of hours till I recognized this.
I see that this might not be an issue where your animation events trigger particle effects, or sound effects - but when trying to utilize this for more serious logic, as when the player might be able to move again, then it may lead to serious issues.
I wonder, why there is no option for the animation clip event, for it to fire regardless of it’s blending state?
Like a tick box option. If ticked, the event will be fired at the correct time, as it would have when not blended.
Is this option not desirable for some reason?
And this leads me to my next question, what then is the proper way of handling animation length specific callbacks?
Do you use Coroutines with a fixed float duration you need to adjust manually? Or is there some other way.