数据驱动的 AI 配置

AI 的"同结构不同数值"应该全部走数据表。这一节给出可落地的字段设计。

通用 AI 配置表

字段 类型 示例值 说明
EnemyID Name EN_Grunt 主键
BehaviorTree / StateTree 软引用 BT_Grunt / ST_Grunt 决策资产
BlackboardAssets 软引用 BB_EnemyBase 记忆配置
PatrolSpeed float 120 巡逻速度
ChaseSpeed float 400 追击速度
SightRange float 25m 视野半径
AttackRange float 2m 攻击距离
AttackCooldown float 1.5s 攻击冷却
RetreatHP float 0.2 撤退血量
Tags 标签数组 EnemyType.Melee 类型标签

生成与初始化流程

1. 敌人生成:查配置表拿到行
2. 创建 AIController,挂决策资产与黑板
3. 把数值写入对应组件(感知配置、速度、攻击参数……)
4. Possess Pawn,决策开始

关键点:数值写入的是组件实例而非资产。感知配置里的视野半径是资产上的属性,改它会影响所有同类敌人。正确做法是每个 AI 实例自己的感知组件实例上覆盖配置。

数据驱动的收益

  • 新增敌人类型 = 加表行 + 关联资产,零代码;
  • 数值平衡由策划在表里调,不阻塞程序;
  • 全局可搜索("哪些敌人视野超过 40m?"一条查询的事)。

与第 2 / 3 章的框架资产、第 1 章的三层结构合起来,就构成了一套可维护的 AI 体系:框架管"怎么想",数据管"想多狠"。