效果
步骤
1. 新建一个蓝图,父类选择“AI控制器”
这里命名为“BP_NPC_AIController”,表示专门用于控制NPC的AI控制器
2. 找到我们之前创建的所有NPC的父类“BP_NPC”
打开“BP_NPC”,在类默认值中,将“AI控制器类”一项设置为“BP_NPC_AIController”
3. 打开狮子蓝图“Character_Lion”
在事件图表中选中“事件开始运行”、“事件Tick”和构造函数,然后右键点击“将调用添加到父函数”,这样子类就是自动调用父类的这些事件
由于我们不需要控制NPC移动,因此我们可以在事件图表中删除其他所有节点,只保留如下节点
4. 回到“BP_NPC”中,在事件图表中添加如下节点,来获取对AI控制器的引用。这样“BP_NPC”的所有派生类中都可以直接使用变量“AIController_NPC”
5. 再次回到狮子蓝图“Character_Lion”中,我们可以使用“移动到位置”节点来控制NPC移动到指定位置。注意这里需要取消勾选“Use Pathfinding”选项,因为此时我们还没有导航数据。
此时运行可以看到NPC狮子会朝着玩家所在位置移动
如果是移动到指定的Actor的话,我们可以使用“移动到Actor”节点更好。因为当NPC向着Actor移动时,即使此时Actor发生了移动,AI控制器也会控制NPC向玩家移动后的位置移动,直到移动到Actor才停止运行。
如果希望NPC移动到Actor附近就停止跟踪,我们可以将参数“Acceptance Radius”的值设置为100,表示NPC移动Actor附近100cm范围内就停止移动