popcorn/Scripts/Utilities/StateMachineBehaviours/SMBEventReceiver.cs

33 lines
1.3 KiB
C#

using UnityEngine;
using UnityEngine.Events;
public class SMBEventReceiver : StateMachineBehaviour {
public UnityEvent onStateEnter;
public UnityEvent onStateExit;
public UnityEvent onStateUpdate;
public UnityEvent onStateMove;
public UnityEvent onStateIK;
/// 新しいステートに移り変わった時に実行
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
onStateEnter.Invoke();
}
/// ステートが次のステートに移り変わる直前に実行
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
onStateExit.Invoke();
}
/// 最初と最後のフレームを除く、各フレーム単位で実行
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
onStateUpdate.Invoke();
}
/// MonoBehaviour.OnAnimatorMoveの直後に実行
override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
onStateMove.Invoke();
}
/// MonoBehaviour.OnAnimatorIKの直後に実行される
override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
onStateIK.Invoke();
}
}