跳转到正文

使用 GAIS 的 EQS 查询

作

作者

作者

创建时间: 2026年10月27日更新时间: 2026年10月27日

目录

使用 GAIS 的 EQS 查询

GAIS 提供面向 Actor、小队和阵型槽位的 EQS Generator 与 Test。EQS 可以单独用于项目查询,也可以将结果交给 Tactical Assignment;它不会自动替项目决定命令或移动。

选择 Generator

编辑器名称

生成内容

使用时检查

GAIS: Squad Actors

SquadSubsystem 中已注册的小队宿主 Actor。

是否包含查询者小队由 bIncludeQuerierSquad 控制。

GAIS: Player Pawns

查询世界中由玩家控制器持有的 Pawn。

未被玩家控制器持有的 Pawn 不会产生结果。

GAIS: Squad Member Actors

查询者小队或指定小队的成员 Actor。

可用 RequiredRoleTag 精确过滤角色,检查查询者与小队解析。

GAIS: Hostile Squad Member Actors

针对查询者小队宿主解析敌对小队成员。

检查小队注册和双方的队伍态度。

GAIS: Formation Slots

FormationComponent 的槽位位置和槽位身份。

设置 FormationActorContext、SlotTagQuery 和权重范围;确认上下文能找到有效阵型。

配套项目实例: 打开 /Game/GenericDemo/GAIS/Squads/EQ_NearByHostileSquad。图中的 GAIS Squad Actors Generator 后接距离、路径、队伍态度和小队人数测试;队伍态度测试显示 Context 到 Item 为 Hostile。测试筛选与评分方式应根据项目需求配置。

配置并验证

  1. 创建 Environment Query 资产,为需要的候选类型选择上述 Generator;配置查询 Context 和必要的过滤项。
  2. Actor 结果可配合 GAIS: Team Attitude Test 按 Context 到 Item 或反方向判断阵营态度,也可用 GAIS: Squad Unit Count 按 roster 人数过滤或评分。Formation Slot 结果可用 GAIS: Formation Slot Weight 按槽位权重过滤或评分。
  3. 在目标关卡以实际查询者运行查询,检查候选数量、位置及过滤结果。结果为空时先检查查询者、Context、队伍态度、小队注册状态、标签和权重范围,再检查查询本身是否执行成功。
  4. 需要自动分配时,在 StateTree task 的 Tactical Assignment Source 中引用查询资产。Actor assignee/target source 要求 Actor 类型结果;Location target source 要求 Vector 类型结果。类型不匹配或运行时查询无结果时,该 Source 本轮贡献空集;其他 Source 仍会参与规划。

Formation Slot 的 EQS item 保留槽位身份和位置;消费端若只读取位置,就不能据此假设仍保留槽位身份。完整配置和容量规则见 配置 Tactical Assignment Plan 与 Tactical Assignment 参数。