UE5 - AI感应功能实现教程2(发现目标停止随机移动)
作者:hangge | 2026-08-19 09:42
前文我演示了 AI 角色在随机移动的过程中如何通过视觉感知发现目标,本文接着演示如何实现在发现目标时能够立即停止随机移动行为。







二、发现目标停止随机移动
1,实现过程
(1)首先我们需要实现一个能够自动随机移动的 AI,具体实现步骤可以参考我前面写的文章:
(2)接着我们需要为 AI 添加视觉感知功能,具体实现步骤可以参考我前面写的文章:
2,新增黑板数据键
(1)打开“BB_AI”黑板,在黑板中新建一个类型为“Object” 的黑板键并命名为“Target”

(2)在“黑板细节”面板中设置“键类型>基类”为“Actor”

3,修改 AI 蓝图设置黑板键
(1)打开“AI”蓝图,之前我们写的逻辑是将看到的目标打印出来。

(2)这次我们需要改成看到目标时设置自身黑板中的“Target”黑板键的值为看到的目标,具体步骤如下:
- 删除“打印字符串”节点,添加“获取控制器”节点与“获取黑板”节点,将两者连接起来就可以直接通过黑板的引用设置黑板键的值。
- 添加“将值设为对象”节点,将“类型转换为 BP_Target”节点的“As BP Target”引脚连接到“Object Value”引脚上,这样只需要从“Key Name”引脚传入“Target”黑板键的名字就可以直接设置黑板键了。
- 添加一个“创建文字命名”节点,将其连接到“Key Name”引脚上。完成后编译并保存蓝图。

4,修改行为树
(1)打开“BT_AI”行为树,新建一个“Selector”节点并分别连接“根”节点与“Sequence” 节点。使用鼠标右键单击“Sequence”节点,执行“添加装饰器”菜单命令,将“Blackboard”装饰器附加到节点上。“Blackboard”装饰器可以对节点进行一些设置,通常为条件设置,只有满足某一个条件,此节点才会被执行。

(2)选择装饰器,在“细节”面板中设置“观察器中止”为“Self”,这样条件不满足时将会中止此序列的执行,设置“黑板键”为“Target”,“键查询”为“未设置”。
提示:当“Target”黑板键没被设置时,“Sequence”节点可以正常执行。当通过“AI”蓝图将“Target”黑板键设置为一个 Actor 时,此节点及之后的节点都不会再执行了。利用选择器的特性,可以从左到右实现“当 Target 被设置时,不执行此分支并执行下一个”这个功能。

5,运行测试
(1)进入 SIE 运行模式,可以看到 AI 一开始还是随机移动。

(2)但当 AI 观察到石头后就不再移动了。

全部评论(0)