使用 GAIS 的 EQS 查询
GAIS 提供面向 Actor、小队和阵型槽位的 EQS Generator 与 Test。EQS 可以单独用于项目查询,也可以将结果交给 Tactical Assignment;它不会自动替项目决定命令或移动。
选择 Generator
编辑器名称 | 生成内容 | 使用时检查 |
|---|---|---|
| SquadSubsystem 中已注册的小队宿主 Actor。 | 是否包含查询者小队由 |
| 查询世界中由玩家控制器持有的 Pawn。 | 未被玩家控制器持有的 Pawn 不会产生结果。 |
| 查询者小队或指定小队的成员 Actor。 | 可用 |
| 针对查询者小队宿主解析敌对小队成员。 | 检查小队注册和双方的队伍态度。 |
| FormationComponent 的槽位位置和槽位身份。 | 设置 |
配套项目实例: 打开 /Game/GenericDemo/GAIS/Squads/EQ_NearByHostileSquad。图中的 GAIS Squad Actors Generator 后接距离、路径、队伍态度和小队人数测试;队伍态度测试显示 Context 到 Item 为 Hostile。测试筛选与评分方式应根据项目需求配置。
配置并验证
- 创建 Environment Query 资产,为需要的候选类型选择上述 Generator;配置查询 Context 和必要的过滤项。
- Actor 结果可配合
GAIS: Team AttitudeTest 按 Context 到 Item 或反方向判断阵营态度,也可用GAIS: Squad Unit Count按 roster 人数过滤或评分。Formation Slot 结果可用GAIS: Formation Slot Weight按槽位权重过滤或评分。 - 在目标关卡以实际查询者运行查询,检查候选数量、位置及过滤结果。结果为空时先检查查询者、Context、队伍态度、小队注册状态、标签和权重范围,再检查查询本身是否执行成功。
- 需要自动分配时,在 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 参数。