【Серия игр Tower Defense UE4】07-Пули наносят урон врагам

Оглавление

Эффект

шаг

1. Пусть пули имеют разный урон

2. У врагов разный объем крови 

3. Измените логику «BP_TowerBase».

4. Выпущенные пули наносят урон противнику


Эффект

 

шаг

1. Пусть пули имеют разный урон

Чтобы каждая пуля имела разное значение урона, откройте «TotalBulletsCategory» (родительский класс всех пуль), создайте новую переменную с плавающей запятой с именем «DamageValue», которая представляет значение урона пули, а значение по умолчанию установлено на 10.

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

 Откройте «TowerBaseBullet_Child» и измените «DamageValue» в родительском классе, чтобы разные пули могли иметь разные значения урона.

2. У врагов разный объем крови 

Откройте «TotalEnemyCategory», создайте новую переменную с плавающей запятой с именем «HealthyValue», которая используется для представления текущего значения здоровья врага, и установите значение по умолчанию на 100.

Точно так же мы можем изменить размер «HealthyValue» в подклассе «Enemy1», чтобы у каждого врага было разное значение здоровья.

3. Измените логику «BP_TowerBase».

 После запуска события выполняйте событие «DetectEnemise» каждые 1 с.

 Событие "DetectEnemise" выглядит следующим образом

 При обнаружении врага обнаружение останавливается, и выполнение события таймера останавливается, если враг не обнаружен, противник обнаруживается повторно.

Обнаружение необходимо перезапустить, когда переменная «ChoosedEnemy» недействительна.

4. Выпущенные пули наносят урон противнику

 Добавьте следующий узел в «TotalEnemyCategory», настройте смоделированную физику, чтобы имитировать эффект падения врага, когда его HP возвращается к 0, а затем задержите 2 секунды, чтобы уничтожить вражеского Актера.

 Здесь вам нужно установить пресет столкновения в компоненте Mesh на пользовательский, а затем игнорировать столкновение Пешки, иначе враг будет подброшен в воздух.

 Запустите игру в это время, и вы обнаружите, что турель продолжает стрелять пулями в мертвого врага после того, как враг умирает.Чтобы избежать этого явления, нам нужно добавить логическую переменную в «TotalEnemyCategory», чтобы указать, мертв ли ​​враг.

 Когда здоровье врага достигает 0, установите для параметра «isDead» значение true.

Открываем "BP_TowerBase", добавляем суждение о смерти врага, если смерти нет, продолжаем прежнюю логику, и перезапускаем детекцию после смерти

В этот момент запустите игру, как показано в начале статьи.

Supongo que te gusta

Origin blog.csdn.net/ChaoChao66666/article/details/131760246
Recomendado
Clasificación