上一篇:
【UE4 第一人称射击游戏】49-僵尸攻击动画
本篇效果:
使用另一种逻辑实现了僵尸的随机漫游
僵尸攻击玩家时会对玩家造成实质上的伤害

步骤:
打开“SimpleAI”,当僵尸看见玩家时,设置变量“CanSeePlayer”为False

我们希望僵尸能够在场景中随机漫游,这次不再使用“事件Tick”触发而是使用“事件开始运行”节点触发,只要“CanSeePlayer”为False,僵尸就一直继续漫游。

如果希望僵尸漫游时发出嘶吼声,可以添加如下节点

接下来我们希望僵尸攻击玩家时会对玩家造成伤害
打开“copzombie_l_actisdato_Skeleton”这个僵尸的骨架

双击打开“copzombie_l_actisdato_Skeleton”,找到右手的骨架

添加一个插槽

插槽的名字命名为“AttackingCollision”

我们可以将插槽的位置移动到手指关节处

再次打开“SimpleAI”,添加一个球体碰撞组件,要保证这个组件的父项时“Mesh(继承)”

父项套接字选择刚创建的“AttackingCollision”插槽,这样这个球体碰撞组件就绑定在僵尸的手上了,我们只需略微要调整这个球体组件的大小和位置即可

勾选 模拟命中事件

编辑当球形组件开始重叠时触发的事件逻辑

逻辑如下:当僵尸的手与玩家重叠时,判断当前僵尸是否正在攻击

再新建一个布尔类型变量,命名为“AlreadyHit”,用来判断僵尸是否已经完成了攻击

如果没有完成攻击,就对玩家造成10%的伤害,然后设置僵尸完成了攻击

当僵尸看见玩家时,设置“AlreadyHit”为False

此时运行效果如文章开头所示