核心概念
行为树(Behavior Tree) 是一种描述智能体决策逻辑的模型。它是一棵由节点构成的树,从根节点开始自上而下地求值(tick)。每个节点被 tick 时返回一个状态:
- Success(成功) —— 节点完成了它的目标
- Failure(失败) —— 节点未能完成目标
- Running(运行中) —— 节点需要更多次 tick 才能完成
父节点根据子节点返回的状态来决定下一步动作。这使得行为树易于理解、模块化且可复用。
节点类别
编辑器中的每个节点都属于以下四类之一:
| 类别 | 作用 |
|---|---|
| 组合(Composite) | 控制多个子节点之间 的流程(如 Sequence、Priority)。可有多个子节点。 |
| 装饰(Decorator) | 修改或包装单个子节点的结果(如 Inverter、Repeater)。只有一个子节点。 |
| 动作(Action) | 叶子节点,在世界中执行某件事(如 MoveTo、Attack)。没有子节点。 |
| 条件(Condition) | 叶子节点,检查某个条件并返回成功/失败(如 IsHungry)。没有子节点。 |
一个简单示例
Priority
├── Sequence
│ ├── IsEnemyVisible (条件)
│ └── Attack (动作)
└── Patrol (动作)
如果能看到敌人,智能体就攻击;否则就巡逻。