59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
|
|
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) {
|
|||
|
|
//
|
|||
|
|
//}
|
|||
|
|
}
|