Newer
Older
HierarchicalFSM-Unity3D / Assets / Scripts / NPC / FSM / Actions / Others / DrawGun.cs
@Rackday Rackday on 14 Aug 812 bytes Major Update
using System.Collections;
using UnityEngine;

[CreateAssetMenu(menuName = "Finite State Machine/Action/Others/DrawGun")]
public class DrawGun : Action
{
    [SerializeField] private string animName;
    public override void Execute(FSM fsm)
    {
        Animator anim = fsm.Controller.Animator;

        anim.SetTrigger("DrawGun");
        AnimationClip currentClip = AnimTool.GetCurrentAnimClip(animName, anim.GetCurrentAnimatorClipInfo(1));
        fsm.StartCoroutine(WaitForAnimation(anim, currentClip.length));
        Debug.Log("PULL OUT THE GUN!");
    }

    public IEnumerator WaitForAnimation(Animator anim, float duration)
    {
        anim.SetLayerWeight(1, 1f);
        yield return new WaitForSeconds(duration);
        anim.SetLayerWeight(1, 0f);
        anim.SetBool("InCombat", true);
    }

}