Animator (Trigger) - анимация проигрывается два раза Открыт

Делаю анимацию через тригеры и есть такая проблема, что если быстро нажимать кнопку, то анимация проигрывается 2 раза.

using UnityEngine;



public class RayShoot : MonoBehaviour

{

    private AnimatorStateInfo stateInfo;

    private int idleHash = Animator.StringToHash("Base Layer.Bolt_Idle");



    [SerializeField] private Animator anim;



    void Update()

    {

        stateInfo = anim.GetCurrentAnimatorStateInfo(0);



        if (stateInfo.fullPathHash == idleHash)

        {

            if (Input.GetKeyDown(KeyCode.R))

            {

                anim.SetTrigger("reload");

            }



            if (Input.GetKeyDown(KeyCode.F))

            {

                anim.SetTrigger("hit");

            }

        }

    }

}



Воспрос задан "April 24, 2016"

Ответы (1):


Нужно вводить дополнительную проверку - флаг.

Если в данный момент логично производить действие, персонаж: стоит, бежит или идет. То можно флаг переключить. 

 

Получиться 

 

if(Input.GetKeyDown(KeyCode.F) && isDone)
....

 Как только нажали F - флаг уходит в false до тех пор, пока анимация перезарядки не пройдет.

 

Таким образом образуется несколько флагов - регистров. Для каждого действия отдельно


Ответ получен "May 11, 2016"

чтобы дать ответ на вопрос