public class AdvancedStateMachineBehaviour : StateMachineBehaviour {
protected AnimatorStateInfo stateInfo;
public AnimatorStateInfo StateInfo
{
get { return stateInfo;}
}
// Use this for initialization
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
this.stateInfo = stateInfo;
}
}
public static class Utilities
{
public static T GetBehaviour<T>(this Animator animator, AnimatorStateInfo stateInfo) where T : AdvancedStateMachineBehaviour {
return animator.GetBehaviours<T>().ToList().First(behaviour => behaviour.StateInfo.fullPathHash == stateInfo.fullPathHash);
}
}