Behavior Designer Decorators(修饰节点)速查表1
核心定义:Decorators(修饰器)只包裹一个子节点,作用是修改子节点的返回结果、执行次数、执行时机、执行条件,相当于给单个行为“加buff、加限制、改规则”。
核心区别:Composites(组合节点)= 管理多个子节点;Decorators(修饰节点)= 修饰单个子节点
一、全部 Decorators 节点总览(官方全量)
Behavior Designer 常用修饰节点共11个,按使用率从高到低排序,全覆盖实战用法。
二、高频必用 Decorators(90% 项目都会用)
1. Inverter(反转器)★★★★★
核心功能:颠倒子节点的返回结果
执行规则:
-
子节点 Success → 父节点 Failure
-
子节点 Failure → 父节点 Success
-
子节点 Running → 保持 Running(不变化)
极简口诀:成功变失败,失败变成功,运行不变
实战场景:取反判断
-
CanSeeTarget(看见目标)+ Inverter → 看不见目标
-
用于:看不见目标就停止、看不见就巡逻
2. Repeater(重复执行)★★★★★
核心功能:无限/指定次数重复执行子节点
执行规则:
-
可设置 Repeat Count:次数,0 = 无限循环
-
无论子节点成功/失败,都会继续重复
-
可选:End On Success / End On Failure(满足条件停止)
极简口诀:不停重复做,直到触发停止条件
实战场景:
-
无限巡逻、无限追击
-
一直移动,直到抵达目标
3. Until Success(直到成功)★★★★☆
核心功能:一直执行子节点,直到返回成功才停止
执行规则:
-
子节点 Failure → 重复执行
-
子节点 Success → 停止,整体返回成功
-
Running 持续运行
极简口诀:失败就重试,成功就结束
实战场景:
-
一直寻路,直到到达目标点
-
一直检测,直到条件满足
4. Until Failure(直到失败)★★★★☆
核心功能:一直执行子节点,直到返回失败才停止
执行规则:
-
子节点 Success → 重复执行
-
子节点 Failure → 停止,整体返回失败
极简口诀:成功就循环,失败就终止
实战场景:
-
持续追击敌人,直到敌人丢失视野
-
持续站立待机,直到触发新行为
三、进阶常用 Decorators(优化行为逻辑必备)
5. Timeout(超时限制)★★★★
核心功能:给子节点加最大执行时间,超时强制终止
执行规则:
-
规定时间内子节点完成 → 返回对应结果
-
超时未完成 → 强制终止,返回 Failure
极简口诀:限时执行,超时失败
实战场景:
-
追击敌人最多追5秒,追不上就放弃
-
寻路超时取消移动,防止卡死
6. Conditional Evaluator(条件刷新修饰)★★★☆
核心功能:每帧重新判断条件,动态控制子节点是否可执行
执行规则:实时刷新条件,不卡帧、不缓存结果
实战场景:动态视野检测、实时状态判定,解决行为树缓存不刷新的问题
7. Repeat N Times(指定次数循环)★★★
核心功能:严格执行 N 次后结束
极简口诀:固定次数,跑完就停
实战场景:播放3次受伤动画、连续2次攻击
四、小众但实用 Decorators(特殊逻辑专用)
8. Always Success(强制成功)
功能:无视子节点结果,整体永远返回 Success
场景:兜底行为,防止分支卡死,比如待机、收尾动作
9. Always Failure(强制失败)
功能:无视子节点结果,整体永远返回 Failure
场景:临时禁用某条行为分支、屏蔽指定逻辑
10. Run Once(只执行一次)
功能:行为树运行期间只触发一次,之后永久跳过
场景:出生初始化、首次触发提示、单次 buff 生效
11. Delay(延迟执行)
功能:延迟指定时间后,再执行子节点
场景:延迟攻击、延迟转身、延迟结束动作
五、Decorators 极速记忆口诀(必背)
-
Inverter:结果取反,运行不变
-
Repeater:无限复读,按需停止
-
Until Success:失败重试,成功退出
-
Until Failure:成功循环,失败退出
-
Timeout:限时执行,超时作废
-
Always Success/Failure:强制固定返回值
-
Run Once:一生一次,绝不重复
六、高频组合实战(你当前AI逻辑适配)
案例:看不见目标就停止(修饰节点经典用法)
原逻辑:看见目标→移动,看不见→停止
最简优化结构:
Selector
├─ Sequence
│ ├─ CanSeeTarget
│ └─ MoveToTarget(Repeater 无限移动)
└─ Inverter + CanSeeTarget(取反:看不见目标)
七、终极避坑注意事项
-
Decorator 只能包裹单个节点,不能直接包裹多个,多节点需外层套 Sequence/Selector
-
Inverter 不修改 Running 状态,只会反转 Success/Failure
-
Repeater 默认无限循环,不设置停止条件会卡死行为树
-
Until Success/Until Failure 是动态重试,比 Repeater 更智能,优先使用
八、节点功能汇总表
| 节点名称 | 核心作用 | 返回值特点 | 适用场景 |
|---|---|---|---|
| Inverter | 反转执行结果 | 成功↔失败,运行不变 | 条件取反判断 |
| Repeater | 重复执行子节点 | 可无限/指定次数循环 | 持续移动、持续巡逻 |
| Until Success | 失败重试,成功停止 | 成功即终止 | 重试寻路、等待条件 |
| Until Failure | 成功循环,失败停止 | 失败即终止 | 持续追击、持续待机 |
| Timeout | 限制最大执行时长 | 超时强制失败 | 防止AI卡死、限时行为 |
| Always Success | 强制返回成功 | 无视子节点结果 | 兜底分支、防止树卡死 |
| Always Failure | 强制返回失败 | 无视子节点结果 | 临时屏蔽行为分支 |
| Run Once | 仅执行一次 | 执行后永久跳过 | 初始化、单次触发逻辑 |
| Delay | 延迟执行子节点 | 等待后执行对应结果 | 延时动作、节奏控制 |