33 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			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();
 | |
|     }
 | |
| }
 |