Hi!
I have a Behaviour on one of my Animator States and I made an Event which is fired then the OnEnter() method is called.
My problem is that I have some Animation Events on the same animation and the Animation Event if fired before my event from the Animator State OnEnter().
The Animation Event is at the 1st frame of the Animation.
The execution order seems off for me, first the event inside the animation is executed after that the OnEnter()? Shouldn’t this be the other way around?
I checked, it happens it the same frame but the execution order if still off.
Thanks,
What are the reasons that you think animation events and StateBehaviour.OnEnter should be called in any particular order - except from “it would maybe make sense from some academic purity point of view”?
As I see it, animation events are reactions from the animation system to certain points in an animation.
StateBehaviour.OnEnter is a callback to process when entering a state machine state in mecanim (that may or may not play some animations - beside doing other things).
Animation Events are also triggered when playing an animation via the Animation component. Or probably when using AnimationClip.SampleAnimation (although I haven’t tried that one).
OnEnter callbacks are also called, if you don’t even have an animation on the mecanim state.
I rather have Unity not guarantee any particular order of things if this makes it easier for them to do better performance. 
Do you have a concrete problem to solve? maybe it can be solved in a different way that does not depend on the internal order of things within Unity?