- 行为树是多个 AI 技术的结合
- 层级状态机
- 时序调度
- 预先规划
- 动作执行
优点
改变游戏状态
-
条件 conditional
测试/判断一些属性
上图中的:Within Sight、Enough Bullets
组合 composite
拥有多个子 task 的父 task
- 上图中的:Sequence、Parallel
具体 composite 类 task 功能
拥有一个子 task 的父 task
- 更改子 task 的行为
上图中并没有,举例:
作用:task 的返回值
- 举例:有些 task 的执行超过一帧时间(比如 animation),因此父 task 需要知道子 task 状态,决定是否要持续执行子 task
三种状态
API 接口类似 Unity MonoBehaviour API
- composite 和 decorator:包含了大量的封装类
- action 和 conditional:包含但不多(因为是具体项目相关的)
- 示例项目中提供了很多例子
- 可扩展已有 task 类型,创建新的 task 类型