Is there a way to get a StateMachineBehaviour on a specific State

Something like:

animator.GetCurrentAnimatorStateInfo(0).GetBehaviour<MyStateMachineBehaviour>()

or at least a way to get the State on which a StateMachineBehaviour is.
Something like:

foreach (MyStateMachineBehaviour smb in animator.GetBehaviours<MyStateMachineBehaviour>())
			print(smb.stateInfo);

If not, why? Is there something I don’t understand that makes it bad or useless to need that?

Well you can always use AnimatorChildState.state.behaviours

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);
	}
}