系统边界与协作关系

GAIS_Cover
YuewuDev

作者

YuewuDev

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

目录

系统边界与协作关系

GenericAISystem 由可以独立接入的能力系统组成。项目不必一次启用所有部分;关键是让每个决策、运行时真源和执行层只由合适的系统承担。本页用一张关系图先建立整体心智模型,再说明每条关键交接的责任边界。

系统关系图

图中的箭头表示系统间交换的职责和结果,不是固定代码调用顺序。例如 Tactical Assignment 只在项目需要自动选择时进入;没有它时,项目可直接通过 Command System 发起明确命令。Formation 也可以单独用于空间查询,而不一定创建 Squad。

项目的 UI、输入和业务规则可以发起请求,但不应成为第二份运行时真源。GAIS 输出状态和建议后,由项目已有的移动、动画、网络或 GAS 层按项目规则执行。

各系统各自拥有的事情

系统

拥有的决策或真源

不应承担的职责

Command System

明确命令的校验、调度和执行交接。

自动寻找最合适的单位或目标。

Tactical Assignment

候选单位/目标、评分、分配与命令生成。

直接替代项目移动后端。

Squad System

成员、角色、容量、槽位占用和成员 Movement Intent。

定义槽位几何或直接实现项目移动。

Formation System

阵型布局、最终槽位位置和导航自适应。

决定成员归属、角色或移动控制。

StateTree 调度

当前行为层的覆盖、恢复和任务调度。

取代小队真源或绕过命令验证。

Team Identity

队伍身份及接入项目阵营规则的边界。

单独定义战术、阵型或行为状态。

三条最常用的交接关系

明确命令与自动战术选择

Command System 接收“谁对什么做什么”的明确请求,并负责校验、调度与执行交接。Tactical Assignment 不替代 Command:它在 AI 需要自行挑选 Unit、目标和意图时,先形成候选、评分和分配,再把得到的命令交给 Command System。项目已经明确指定单位和目标时,直接使用 Command System;不要为此额外创建战术分配计划。

小队、阵型与移动层

FormationComponent 产出最终槽位位置;SquadComponent 决定成员占用并以该结果刷新 Movement Intent;UnitComponent 镜像成员侧结果;每支小队配置的 Driver 或项目移动层再消费 Intent。任何一层都不应倒过来改写前一层的真源。

这条边界使项目可以替换导航、Mover、GMS、动画驱动移动或网络策略,而不必复制阵型和小队的组织逻辑。若 Intent 正确但单位不动,应从 Driver/项目移动层排查;若槽位错误,应回到 Formation 或 Squad 分配,而不是修改 Driver。

StateTree 与队伍身份

StateTree Stack 与 Queue 让 Unit、Squad 或 Command 在不同层组织当前行为和执行序列。它可以触发阵型选择,或临时改变 Movement Intent 的消费策略,但仍需通过所属系统入口提交状态。Team Identity 则为命令、招募、过滤和项目规则提供共同的阵营语义;它不替代这些系统各自的权限、选择或生命周期。

常见跨系统误用

现象

应回到的边界

Driver 试图决定谁属于小队或占哪个槽位

回到 SquadSystem。

直接使用阵型资产 Offset 作为单位目的地

使用 Formation 的最终槽位世界结果。

Command、AIController 和 Driver 同时写移动

指定当前移动控制权,明确暂停、覆盖或合并 Intent 消费。

用 Tactical Assignment 强行实现已经明确的玩家命令

直接走 Command System。

用 StateTree 直接篡改复制容器

通过 Squad、Formation 或 Command 的公开入口提交状态改变。

下一步可从 核心功能地图 回到具体系统;字段、扩展和症状排查分别在 参数参考、扩展点指南 和 调试与排错。