【UE4 塔防游戏系列】07-子弹对敌人造成伤害

目录

效果

步骤

一、让子弹拥有不同伤害

二、敌人拥有不同血量 

三、修改“BP_TowerBase”逻辑

四、发射的子弹对敌人造成伤害


效果

 

步骤

一、让子弹拥有不同伤害

为了让每一种子弹拥有不同的伤害值,打开“TotalBulletsCategory”(所有子弹的父类),新建一个浮点型变量,命名为“DamageValue”,表示子弹的伤害值,默认值设为10

 子弹碰撞到敌人时,应用这个伤害值【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第1张图片

 打开“TowerBaseBullet_Child”,修改父类中的“DamageValue”,这样就可以让不同的子弹拥有不一样的伤害值

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第2张图片

二、敌人拥有不同血量 

打开“TotalEnemyCategory”,新建一个浮点型变量,命名为“HealthyValue”,用于表示敌人的当前的生命值,设置默认值为100

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第3张图片

同样的我们可以在子类“Enemy1”中去修改“HealthyValue”的大小,让每一个敌人拥有不同的生命值。

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第4张图片

三、修改“BP_TowerBase”逻辑

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第5张图片

 事件开始运行后,每隔1s执行一次“DetectEnemise”事件

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第6张图片

 “DetectEnemise”事件如下【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第7张图片

 当检测到了敌人后就停止检测,停止执行定时器事件,如果没有检测到,就重新检测敌人。【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第8张图片

当变量“ChoosedEnemy”无效时,需要重新开始检测

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第9张图片

四、发射的子弹对敌人造成伤害

 在“TotalEnemyCategory”中添加如下节点,当敌人的生命值归0时设置模拟物理来模拟敌人倒下的效果,然后延迟2s销毁敌人Actor

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第10张图片

 这里需要将Mesh组件中的碰撞预设设置为自定义,然后忽略Pawn的碰撞,否则敌人会被击飞。

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第11张图片

 此时运行游戏会发现当敌人死亡后炮塔还在继续向这个死亡的敌人发射子弹,为了避免这个现象,我们需要在“TotalEnemyCategory”中添加一个布尔变量来表示敌人是否已经死亡

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第12张图片

 当敌人生命值归0时,设置“isDead”为真【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第13张图片

打开“BP_TowerBase”,添加对敌人死亡的判断,没有死亡就继续之前的逻辑,死亡就重新开始检测

【UE4 塔防游戏系列】07-子弹对敌人造成伤害_第14张图片

此时运行游戏如文章开头所示。

你可能感兴趣的:(#,虚幻4,塔防游戏,ue4,游戏)