征服奇幻世界!Unreal Engine 4 RPG系列教程(十二):见证敌人的陨落!
2024-02-01 06:02:36
你好,大家好!在上一集教程中,我们完成了NPC的AI部分,今天我们要完成两个功能,分别是给NPC加上血条以及触动NPC攻击。好了,废话不多说,咱们这就开始吧!
Enemy 血条
首先,我们需要创建一个血条的蓝图。右键单击内容浏览器中的“蓝图”文件夹,然后选择“蓝图类”>“用户界面”>“Widget Blueprint”。将新蓝图命名为“EnemyHealthBar”。
在EnemyHealthBar蓝图中,我们将创建一个CanvasPanel来容纳血条。CanvasPanel是一个容器,允许我们在其中放置其他用户界面元素。在CanvasPanel中,我们将添加一个Image来充当血条的背景,以及一个ProgressBar来表示敌人的生命值。
我们将把Image命名为“HealthBarBackground”并将其颜色设置为红色。我们将把ProgressBar命名为“HealthBar”并将其颜色设置为绿色。
接下来,我们需要创建一个名为“SetHealth”的函数来设置敌人的生命值。这个函数将采用一个浮点数参数,该参数表示敌人的生命值百分比。在函数中,我们将把HealthBar的百分比设置为参数值。
现在,我们需要将EnemyHealthBar蓝图附加到敌人蓝图。在敌人蓝图中,打开“组件”面板,然后单击“添加组件”按钮。在“组件”列表中,找到“EnemyHealthBar”并将其拖放到敌人蓝图中。
在“详细信息”面板中,找到“EnemyHealthBar”组件并展开它。我们将把“Health”变量设置为100.0。
Enemy Chasing
接下来,我们需要设置敌人的追逐行为。在敌人蓝图中,打开“行为树”面板。我们将创建一个名为“ChasePlayer”的新行为树。
在“ChasePlayer”行为树中,我们将添加一个名为“MoveToPlayer”的移动任务。我们将把“目标位置”设置为玩家的位置。
接下来,我们将添加一个名为“AttackPlayer”的攻击任务。我们将把“目标”设置为玩家。
现在,我们需要创建一个名为“IsPlayerInRange”的布尔变量。这个变量将用于确定玩家是否在攻击范围内。我们将把这个变量的默认值设置为false。
接下来,我们将添加一个名为“CheckPlayerInRange”的条件任务。我们将把“目标”设置为玩家,并将“距离”设置为攻击范围。如果玩家在攻击范围内,我们将把“IsPlayerInRange”变量设置为true。
现在,我们需要创建一个名为“ChasePlayer”的序列任务。我们将把“MoveToPlayer”任务和“AttackPlayer”任务添加到序列任务中。
最后,我们将把“CheckPlayerInRange”条件任务和“ChasePlayer”序列任务添加到行为树中。
现在,我们需要将行为树附加到敌人蓝图。在敌人蓝图中,打开“人工智能”面板,然后单击“行为树”下拉列表。选择“ChasePlayer”行为树。
现在,当玩家进入攻击范围时,敌人将开始追逐玩家并攻击玩家。
这就是本集教程的全部内容。我们已经给敌人添加了血条和追逐功能。在下一集教程中,我们将继续完善我们的游戏。