Настройка переходов анимаций Idle в аниматоре

Рейтинг: 0Ответов: 1Опубликовано: 06.04.2023

Я хочу, чтобы анимации (Move)Idle оставались после непосредственно их Move (Например, NickRight <-> NickIdleRight и т.д.). Но у меня происходит проблема: невозможно перейти к другим анимациям - игрока просто фризит (см. вложение на примере Left)

введите сюда описание изображения


Мне необходим переход между всеми анимациями для сохранения Idle, как это обычно выглядит в других играх. Возможно, есть разные способы добиться такого? Мне очень нужна помощь с этим, т.к. в анимациям я очень слаб.

Прикреплю также фрагмент скрипта PlayerController:

void FixedUpdate()
        {
            MoveNick();
        }

        private void MoveNick()
        {
            if (GameFlow.isMovementFreezed)
            {
                _animator.SetInteger("UpDown", 0);
                _animator.SetInteger("Side", 0);
                return;
            }

            Vector2 position = _rigidbody2d.position;
            position.x += _speed * _horizontalInput * Time.deltaTime;
            position.y += _speed * _verticalInput * Time.deltaTime;
            _animator.SetInteger("UpDown", _verticalInput < 0 ? -1 : (int)Math.Ceiling(_verticalInput));
            _animator.SetInteger("Side", _horizontalInput < 0 ? -1 : (int)Math.Ceiling(_horizontalInput));
            _rigidbody2d.MovePosition(position);
        }

Ответы

▲ 1

Анимации можно связать через AnyState.

То есть, если у тебя он стоит в особой анимации, и ты не хочешь городить кучу связей(банально связать все анимации друг с другом), то подвяжи все анимации к AnyState.

То есть при неком условии(которое ты задаëшь), у тебя начинается анимация, вызываемая этим условием.

Есть вопросы - задавай)