using UnityEngine; using UnityEngine.InputSystem; namespace DefaultNamespace.StateMachineBehaviours { public class Test : UnityEngine.StateMachineBehaviour { private static readonly int IS_EXIT_ID = Animator.StringToHash("isExit"); [SerializeField] private InputAction _inputAction; public override void OnStateEnter(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("OnStateEnter"); _inputAction.Enable(); } public override void OnStateExit(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("OnStateExit"); _inputAction.Disable(); } public override void OnStateUpdate(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("OnStateUpdate"); if (_inputAction.triggered) { animator.SetBool(IS_EXIT_ID, !animator.GetBool(IS_EXIT_ID)); } } public override void OnStateMove(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("OnStateMove"); } public override void OnStateIK(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("OnStateIK"); } } }