Files
Robii Aragon fd87a6ffd5 add ckg
plantilla base para movimiento básico
2026-02-05 05:07:55 -08:00

86 lines
2.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class animatorTriggerEvent : StateMachineBehaviour
{
[Header ("Main Settings")]
[Space]
public bool eventEnabled = true;
public bool eventOnEnterEnabled = true;
public bool eventOnExitEnabled;
[Space]
public string eventMessage;
[Space]
public bool useMessageParameter = true;
public string eventMessageParameter;
[Space]
[Header ("Remote Animator Trigger Event Settings")]
[Space]
public bool useRemoteAnimatorTriggerEventSystem;
public string RemoteAnimatorTriggerEventName;
// 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 && eventOnEnterEnabled) {
if (useRemoteAnimatorTriggerEventSystem) {
remoteAnimatorEventTriggerSystem currentRemoteAnimatorEventTriggerSystem = animator.GetComponent<remoteAnimatorEventTriggerSystem> ();
if (currentRemoteAnimatorEventTriggerSystem != null) {
currentRemoteAnimatorEventTriggerSystem.callRemoteEvent (RemoteAnimatorTriggerEventName);
}
} else {
if (useMessageParameter) {
animator.SendMessage (eventMessage, eventMessageParameter, SendMessageOptions.DontRequireReceiver);
} else {
animator.SendMessage (eventMessage, 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 && eventOnExitEnabled) {
if (useRemoteAnimatorTriggerEventSystem) {
remoteAnimatorEventTriggerSystem currentRemoteAnimatorEventTriggerSystem = animator.GetComponent<remoteAnimatorEventTriggerSystem> ();
if (currentRemoteAnimatorEventTriggerSystem != null) {
currentRemoteAnimatorEventTriggerSystem.callRemoteEvent (RemoteAnimatorTriggerEventName);
}
} else {
if (useMessageParameter) {
animator.SendMessage (eventMessage, eventMessageParameter, SendMessageOptions.DontRequireReceiver);
} else {
animator.SendMessage (eventMessage, 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) {
//
//}
}