返回系统工坊
已完成战斗敌人行为

敌人行为配置链

案例研究 / system-design

战斗敌人行为EnemyDefinitionData动作规则Boss 阶段

我把 EnemyDefinitionData 里的基础信息、动作集合、单动作规则、行为档案、Boss 阶段和调试读取拆成可读配置链,让敌人...

项目阶段

原型

负责人

苏阿酥

协作团队

个人项目

敌人行为配置链 系统封面

摘要

我把 EnemyDefinitionData 里的基础信息、动作集合、单动作规则、行为档案、Boss 阶段和调试读取拆成可读配置链,让敌人差异来自明确配置,而不是散落在单个 AI 脚本里的临时判断。

系统定位

敌人定义、动作规则、行为参数与调试验收的配置链。

项目类型

Unity 2D 横版动作战斗样机。

关键实现

EnemyDefinitionData 装配基础面板、动作集合、单动作规则和行为档案。

设计问题

配置入口不集中

如果敌人身份、动作、AI 参数和 Boss 阶段分散在多个脚本里,新增敌人时很难知道应该改哪里。

字段职责混在一起

生命、防御、移动速度这类基础面板如果混进索敌和攻击判断,调参会同时影响表现和行为。

动作原因不可见

前摇、活跃、恢复、距离、冷却、权重和命中反馈如果散在 AI 里,就说不清一次出招为什么成立。

Boss 逻辑易孤岛

Boss 若另写阶段逻辑,会脱离普通怪和精英怪的动作集合,复用、调试和压力验收都会断开。

设计目标

提升入口清楚

≥ EnemyDefinitionData

目标是让敌人定义只负责装配信息、动作集合和行为配置,不继续扩成 EnemyData 大表。

提升职责分层

≥ 4组配置对象

基础信息、动作集合、单动作规则、行为档案各自负责不同问题。

提升出招可解释

≥ 10项动作口径

前摇、活跃、恢复、距离、伤害、击退、碰撞盒、动画、冷却、权重都能复查。

提升调试可定位

≥ 3类原因

调试入口要能回答为什么攻击、为什么停手、为什么切阶段。

我的方案

阶段一·装配
01

主定义入口

用 EnemyDefinitionData 作为怪物配置入口,只挂接基础信息、动作集合和行为配置,避免继续把所有参数塞进一张 EnemyData 大表。

02

基础信息挂接

EnemyInfoConfigData 维护 enemyId、displayName、生命、防御、移动速度和冲刺速度等身份与面板信息,不混入索敌和攻击决策。

03

动作集合挂接

EnemyActionSetData 管理 defaultAction、actions 和 hitboxGizmo,让普通怪、精英怪和 Boss 变体能通过替换动作集合形成差异。

阶段二·动作
04

动作窗口配置

EnemyActionData 先写清前摇、活跃、恢复、释放距离、冷却和选择权重,让动作何时可选有稳定判断。

05

命中反馈配置

同一动作配置继续承载伤害、击退、碰撞盒、动画和命中反馈,让一次攻击的表现与结算能一起验收。

06

行为档案配置

EnemyBehaviorProfileData 承接巡逻、索敌、追击、攻击决策、状态动画和受击反馈,决定敌人如何在运行中切换行为。

阶段三·运行
07

阶段压力配置

Boss 阶段复用同一套动作集合和行为档案,再追加阶段条件、行为切换和镜像压力,避免 Boss 成为孤立逻辑。

08

读取调试闭环

运行时由 EnemyDefinitionProvider 提供稳定读取入口,HUD 展示当前状态、动作、条件和切换原因,用于定位异常。

策略要点

01

先收入口

先把敌人的配置入口收束到 EnemyDefinitionData,再拆细字段职责,避免新增敌人时到处找脚本。

02

动作行为分层

将动作窗口和命中反馈放进 EnemyActionData,将巡逻、索敌、追击和攻击选择放进行为档案,避免规则互相污染。

03

Boss 接同链路

Boss 只在同一链路上增加阶段条件和压力变化,而不是另开 AI 逻辑,保证普通怪、精英怪和 Boss 可以共用调试口径。

关键产出

主定义装配表

形成 EnemyDefinitionData 装配说明,列明基础信息、动作集合、行为档案和 Boss 阶段如何挂接到同一敌人定义。

基础字段口径

形成 EnemyInfoConfigData 字段说明,证明 enemyId、displayName、生命、防御、移动速度和冲刺速度只服务身份与面板。

动作字段口径

形成动作集合与单动作规则清单,覆盖 defaultAction、actions、hitboxGizmo、窗口、距离、伤害、击退、动画、冷却和权重。

行为档案说明

形成 EnemyBehaviorProfileData 行为参数说明,覆盖巡逻、索敌、追击、攻击决策、状态动画和受击反馈。

调试验收清单

形成读取与 HUD 验收清单,用当前状态、当前动作、选择条件和切换原因证明异常行为可以回到配置链定位。

数据反馈

敌人模板

38个

当前项目文档观测到的敌人模板数量,说明配置拆分不是单个样例。

装配对象

4组

基础信息、动作集合、单动作规则、行为档案共同组成 EnemyDefinitionData 的主要承载。

基础字段

6项

enemyId、displayName、生命、防御、移动速度、冲刺速度。

动作验收项

10项

前摇、活跃、恢复、距离、伤害、击退、碰撞盒、动画、冷却、权重。

行为参数

6组

巡逻、索敌、追击、攻击决策、状态动画、受击反馈。

调试问题

3类

重点回答为什么攻击、为什么停手、为什么切阶段。

复盘

这页不能只说行为链路,还要把主定义、基础面板、动作集合、单动作和行为档案的真实配置讲出来。

字段细节可以展示,但必须说明它解决什么问题;否则就会退回字段表直贴,读者仍然看不懂设计判断。

后续调优 Boss 时继续复用动作集合和行为档案,只把阶段条件与压力节奏作为扩展层。