Unity C#. Как можно сделать две разные анимации при одинаковых условиях?

В общем есть скрипт, в котором описаны условия действия двух анимаций:

if (isGrounded && !isDead) State = CharState.knightidle;

if (!isDead && Input.GetButtonDown("Fire1")) Attack();

CharState - переменная состояния персонажа

private void Attack()
    {
        State = CharState.knightattack;

        if (Vector3.Distance(transform.position, monster.transform.position) < length)
        {
            monster.GetDamage();
        }
    }

Когда скрипт пытается проиграть анимацию knightattack она тут же заменяется обратно на knightidle, видно буквально пару кадров от нужной анимации. Подозреваю, что это из-за условий выполнения анимации, ведь когда персонаж находится без опоры под ногами (прыгает или падает, то есть isGrounded = false) то анимация прекрасно проигрывается и не заменяется. Как можно исправить ситуацию?

Заранее спасибо за уделенное время.


Ответы (1 шт):

Автор решения: Pantheon

Попробуй в окне Animator выбрать стрелку которая передаёт анимацию из knightattack в knightidle и с право в окне поставить галочку на пункте Has exit time.

→ Ссылка