Каким образом можно выполнить серию последовательных атак в комбо?

Как я могу настроить систему анимации атаки персонажа так, чтобы анимации игрались по нажатию кнопки, а не разом после каждого нажатия? Здесь приведены скриншоты моего кода, и я не хочу ничего менять, что не связано с моей проблемой.
Изображение к вопросу
Изображение к вопросу
Изображение к вопросу
Изображение к вопросу
  • 29 декабря 2023 г. 19:27
Ответы на вопрос 2
Для выполнения серии последовательных атак в комбо вам потребуется использовать состояние и контроллер состояний. В этом случае каждая атака будет представлена отдельным состоянием, и персонаж будет переходить из одного состояния в другое по мере нажатия кнопок.

Примерно так будет выглядеть ваш код с использованием Animator и контроллер состояний:

```csharp
// Получаем ссылку на компонент Animator
private Animator animator;

// Задаем значения параметров атаки в контроллере состояний
private int attack1Hash = Animator.StringToHash("Attack1");
private int attack2Hash = Animator.StringToHash("Attack2");
private int attack3Hash = Animator.StringToHash("Attack3");

private void Start()
{
    // Получаем компонент Animator
    animator = GetComponent<Animator>();
}

private void Update()
{
    // Проверяем нажатие кнопок атаки
    if (Input.GetKeyDown(KeyCode.Alpha1))
    {
        // Переходим в состояние атаки 1
        animator.SetTrigger(attack1Hash);
    }
    else if (Input.GetKeyDown(KeyCode.Alpha2))
    {
        // Переходим в состояние атаки 2
        animator.SetTrigger(attack2Hash);
    }
    else if (Input.GetKeyDown(KeyCode.Alpha3))
    {
        // Переходим в состояние атаки 3
        animator.SetTrigger(attack3Hash);
    }
}
```

Таким образом, при нажатии кнопок атаки будет вызываться соответствующий метод, который будет переходить персонажа в состояние атаки, и система анимации воспроизведет анимацию соответствующей атаки.

Однако, чтобы код заработал, необходимо иметь настроенный контроллер состояний в Animator, а также соответствующие параметры и переходы между состояниями. Убедитесь, что у вас правильно настроены анимации и параметры в контроллере состояний.
Раз в комментариях определили тип ввода комб, можно расписать. 
Данный режим делается через NotifyState в AnimationMontage. Запихиваете все атаки в один монтаж, разлинковываете их чтобы они сами не переходили в другие, задаёте в начало каждой секцию с именем и в секвенсоре можно добавлять окна обработки NotifyState, который задаётся уже в блюпринтах.
На Ютубе есть хороший туториал про этопродолжением в котором фиксится переключение сразу на следующую атаку) на английском, в котором знания английского не особо нужны.
Похожие вопросы