11. 创建服务

第11步. 创建服务

Windows
MacOS
Linux
On this page

服务 附加在合成 节点上,所属分支被执行时其将以自身定义的频率执行。它们常用于进行检查和更新黑板,取代了其他行为树系统中的传统平行节点。

在本例中,服务节点将寻找非AI角色的 Pawn,然后设置TargetToFollow和 TargetLocation黑板键。

步骤

  1. 内容浏览器(Content Browser)双击 打开FollowerBT行为树。

  2. 点击 新建服务(New Service) 按钮。

    将在与行为树相同的文件夹中创建该任务。

  3. 内容浏览器 中将其重命名为"AgroCheck"。

  4. 此时编辑器应已将其打开以便编辑。若未打开,在 内容浏览器双击 打开。

  5. 创建如下图表:

    Copy Example

    点击图片将其展开,或点击此处 在窗口中打开。

    variables.png

    该蓝图的变量名、类型和数值:

    变量名

    类型

    默认值

    DesiredObjectTypes

    EObjectTypeQuery类型阵列

    一个元素设为 Pawn

    MyLocation

    Vector 3

    0,0,0

    AI_CON_Ref

    Follower_AI_CON_C

    TargetToFollow

    BlackboardKeySelector

    空 - 此变量的"可编辑"标签为 True,可在行为树中根据实例进行修改。

    TargetLocation

    BlackboardKeySelector

    空 - 此变量的"可编辑"标签为 True,可在行为树中根据实例进行修改。

变量 DesiredObjectTypes 是单个元素设为 PawnEObjectTypeQuery 类型阵列。要进行此设置,首先在"我的蓝图(My Blueprint)"面板中选择 DesiredObjectTypes 变量,然后在"细节面板(Details Panel)"中的"默认值(Default Value)"目录下,点击 plus_button.png 按钮添加一个元素。使用元素上的下拉列表,选择 Pawn

如"默认值(Default Value)"类目中无内容显示,请对蓝图进行编译。

以下是该图表中将执行的操作:

  1. 事件Tick(Event Tick) 的工作原理与Actor中的相同,不同之处是其以行为树中定义的频率被tick。

  2. 递入的 拥有者Actor(Owner Actor) 固定为调用行为树的控制器,先对其进行保存。但仅在未保存时才需要进行此操作,以减少投射节点带来的开销。

  3. 基于受控Pawn位置,对Object执行多球体追踪,减去受控Pawn后获得所有Pawn。

  4. 针对每个 循环将查验玩家是否被击中。

  5. 若被击中,则执行可视性追踪,以确认AI Pawn是否能看到玩家Pawn。

  6. 若能看到,在黑板物体上设置AI Pawn的正确值(追踪的目标目标位置)。

  7. 若无法看到,则清除黑板上的 追踪的目标 键。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback