Автоматическая стрельба в Unreal Engine 4: лимит патронов

Этот урок описывает создание механики автоматической стрельбы с ограничением количества патронов в магазине. Материалы, включая домашнее задание, доступны по ссылке [ссылка на сайт].

Добавление переменных в Blueprint

В Blueprint объекта «ружье» добавим две переменные:

  1. Количество патронов в магазине: Переменная типа Integer (целое число), определяющая максимальное количество патронов. Значение по умолчанию: 35.
  2. Скорострельность (Rate of Fire): Переменная типа Float (вещественное число), определяющая частоту выстрелов в секундах. Значение по умолчанию: 0.1 (10 выстрелов в секунду). Увеличение значения уменьшает скорострельность.

Реализация автоматической стрельбы

Используем событие Input Action (например, связанное с правой кнопкой мыши). Добавим булеву переменную IsFiring, которая принимает значение true при зажатии кнопки и false при отпускании.

  1. При нажатии кнопки устанавливаем IsFiring в true.
  2. При отпускании кнопки устанавливаем IsFiring в false.
  3. Используем функцию Delay с длительностью, равной значению переменной Rate of Fire. После задержки проверяем значение IsFiring.
  4. Если IsFiring равно true, вызываем событие Fire для выстрела. Этот цикл повторяется до тех пор, пока IsFiring не станет false.

Ограничение количества патронов

В функции Fire реализуем ограничение количества патронов:

  1. При каждом выстреле уменьшаем значение переменной «Количество патронов в магазине» на 1.
  2. Перед вызовом события Fire проверяем: если количество патронов больше 0, выстрел производится; иначе — стрельба прекращается. Эта проверка служит условием для события Fire.

Отображение количества патронов

Добавим на экран текстовый Widget для отображения оставшегося количества патронов:

  1. Создадим текстовый Widget.
  2. Используем функцию Get для получения значения переменной «Количество патронов в магазине».
  3. Преобразуем значение Integer в строку.
  4. Установим полученную строку в качестве текста Widget’а.

Количество патронов будет динамически обновляться на экране.

Что будем искать? Например,программа