using System.Collections; using System.Collections.Generic; using UnityEngine; public class animatorTriggerEnterExitEvent : StateMachineBehaviour { [Header ("Main Settings")] [Space] public bool eventEnabled = true; public bool eventEnterEnabled = true; public bool eventExitEnabled = true; [Space] [Space] public string enterEventMessage; public string enterEventMessageParameter; [Space] [Space] public string exitEventMessage; public string exitEventMessageParameter; // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state public override void OnStateEnter (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (eventEnabled && eventEnterEnabled) { animator.SendMessage (enterEventMessage, enterEventMessageParameter, SendMessageOptions.DontRequireReceiver); } } // OnStateExit is called when a transition ends and the state machine finishes evaluating this state public override void OnStateExit (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (eventEnabled && eventExitEnabled) { animator.SendMessage (exitEventMessage, exitEventMessageParameter, SendMessageOptions.DontRequireReceiver); } } // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks // override public void OnStateUpdate (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) // { // } // OnStateMove is called right after Animator.OnAnimatorMove(). Code that processes and affects root motion should be implemented here //override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // //} // OnStateIK is called right after Animator.OnAnimatorIK(). Code that sets up animation IK (inverse kinematics) should be implemented here. //override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // //} }