Блокировка стрельбы при беге

Возможность стрельбы при беге смотрится нереалистично из-за нашей анимации бега, поэтому стрельбу лучше отключать при беге.

Рекомендую сначала попробовать реализовать данную логику самостоятельно, как домашнее задание.

Улучшение можно сделать после Лекции 065 или в самом конце прохождения курса.

Решение

  • Добавляем новый флаг в базовый класс оружия FireInProgress

void ASTUBaseWeapon::StartFire()
{
    FireInProgress = true;
}

void ASTUBaseWeapon::StopFire()
{
    FireInProgress = false;
}

bool ASTUBaseWeapon::IsFiring() const
{
    return FireInProgress;
}
  • В компонент оружия также добавляем функцию:

  • В классе персонажа создаем функцию OnStartFire и биндимся на нее при стрельбе, а не напрямую, как раньше, в компонент оружия:

  • После этого добавляем код для функции OnStartFire и обновляем две другие функции:

  • Дополнительные детали с вызовом родительских функций StartFire и StopFire можно посмотреть в репозитории

Коммит в репозитории

Last updated

Was this helpful?