1
This commit is contained in:
34
Unity/Scripts/Animator/AnimatorStateHelper.cs
Normal file
34
Unity/Scripts/Animator/AnimatorStateHelper.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
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>>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user