核心定义: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 延迟执行子节点 等待后执行对应结果 延时动作、节奏控制