四个组件:黑板,行为树,Character,AIController
- 黑板: 黑板是AI的记忆。他保存关键值,以供行为树使用。
- 行为树:行为树是AI的处理器。他做出决定,然后执行。
AI移动需要NavMeshBoundVolume
(查看NavMesh的快捷键:P)
行为树需要注意的地方
- 从上倒下,根节点向下执行
- 永远从左到右执行相同层次的节点
- Composites节点的类型:Selector,Sequence,SimpleParallel
- Selector:Selector 节点从左至右执行其子项,其中一个子项达成后将停止执行其子项。如 Selector 的子项达成,则 Selector 也达成。如 Selector 的所有子项未达成,则 Selector 未达成。
- Sequence : 节点从左至右执行其子项,如其中一个子项未达成,将停止执行执行其子项。如子项未达成,则 Sequence 也未达成。如 Sequence 的所有子项均达成,则 Sequence 也达成。
(感觉Selector和Sequence的区别就在于是 ”或“ 和 ”且“ 的关系) - SimpleParallel:节点可使单个主任务节点在整颗行为树旁执行。主任务完成后,Finish Mode 中的设置将确定节点是否立即完成、是否终止次要树,或是否延迟次要树的完成。
- Decorators,Services,Tasks
- Services: 定时执行一个操作,通常在根节点下的selector中执行,可以定时检查操作,常用于检查和更新黑板
这两个地方的Interval都可以去设置Service执行的时间间隔
- Decorators:条件语句,附着雨一个Composite或者Task节点,并定义树中的一个分支或单个节点是否可以执行
- Tasks:Task 是真正“执行”操作的节点,如移动 AI,或调整黑板值。