37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using UnityEngine;
|
|
namespace Invector.Throw
|
|
{
|
|
public class vThrowAnimatorEvent : StateMachineBehaviour
|
|
{
|
|
public enum ThrowEventType
|
|
{
|
|
EquipThrowable, EnableAiming, CancelAiming, StartLaunch, FinishLaunch
|
|
}
|
|
|
|
public ThrowEventType eventType;
|
|
[Range(0, 1f)]
|
|
public float time;
|
|
bool isTrigger;
|
|
vThrowManagerBase manager;
|
|
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
manager = animator.GetComponentInChildren<vThrowManagerBase>();
|
|
isTrigger = false;
|
|
}
|
|
|
|
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
if (stateInfo.normalizedTime >= time && !isTrigger)
|
|
{
|
|
OnTrigger();
|
|
}
|
|
}
|
|
|
|
protected virtual void OnTrigger()
|
|
{
|
|
isTrigger = true;
|
|
manager.TriggerAnimatorEvent(eventType);
|
|
}
|
|
}
|
|
}
|