34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
namespace BITKit
|
|
{
|
|
public class AnimatorStateHelper : StateMachineBehaviour
|
|
{
|
|
public string stateName;
|
|
IGenericEvent<string> genericEvent;
|
|
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
EnsureValid(animator);
|
|
genericEvent?.Invoke<string>(Constant.Animation.OnPlay, stateName);
|
|
}
|
|
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
EnsureValid(animator);
|
|
genericEvent?.Invoke<AnimatorStateInfo>(stateName, stateInfo);
|
|
}
|
|
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
EnsureValid(animator);
|
|
genericEvent?.Invoke<string>(Constant.Animation.OnPlayEnd, stateName);
|
|
genericEvent?.Invoke<AnimatorStateInfo>(stateName, new());
|
|
}
|
|
void EnsureValid(Animator animator)
|
|
{
|
|
if (genericEvent is null)
|
|
{
|
|
genericEvent = animator.GetComponent<IGenericEvent<string>>();
|
|
}
|
|
}
|
|
}
|
|
} |