I did 3 tests to be absolutely sure that I could reproduce the crash and this is how it finally crashed every time:
string exit = "Exit";
Spine.AnimationState currentState;
void Start(){
currentState = GetComponent<SkeletonAnimation> ().state;
currentState.End += FinishAnimation;
}
void FinishAnimation(Spine.AnimationState state, int trackIndex){
if (!state.GetCurrent (0).ToString ().Equals (exit))
return;
currentState.SetAnimation (0, enter, false);
}
Furthermore:
If
currentState.SetAnimation (0, enter, false);
is changed to
currentState.AddAnimation (0, enter, false, 0);
nothing happens.
I hope this helps to clarify if I misused something, or if there's actually a bug in Spine
Ok, I just read a bit further in your link and found this:
Bonus info:
Because of this, End is a bit dangerous. You should never bind a function that calls SetAnimation on End.
Which is exactly describing the behaviour and therefore it's not a bug.