Files
david fccc1849fe add unity project
add FSM examples
2025-04-09 07:51:22 +02:00

49 lines
1.5 KiB
C#

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