Behaviour行为树
之前做战斗的时候,都是用的状态机实现的,从逻辑上来看比较清晰,很容易把控流程,但不够直观。所以在空闲的时间,想研究一下Behaviour Designer,拓展一下技能。
关于Behaviour Designer 行为树
官方介绍:
Behavior Designer是一个为每个人-程序员,艺术家,设计师实现设计的行为树。Behavior Designer提供了一个强大的API,允许您轻松创建新任务。它提供了一个直观的可视化编辑器,具有广泛的第三方集成,使得无需编写一行代码就可以创建复杂的ai。
行为树有一些比较重要的概念,例如:如任务类型(动作、复合、条件和装饰)。
行为树面板介绍
初始界面是这样的:
下面截图分为四部分:
- 第1部分流程节点渲染绘制区域,在此面板创建行为树
- 第2部分是参数熟悉面板,可以编辑行为树的特定熟悉、添加新任务、创建新变量或者编辑任务的参数第2部分是一个属性面板。在属性面板中,您可以编辑行为树的特定属性、添加新任务、创建新变量或编辑任务的参数。
- 第3部分是工具栏,可以添加删除行为树等
- 第4部分是调试工具栏。可以运行、暂停、步近Unity。也有行为树错误数量的显示
操作工具栏说明:
- 标签1:在你打开的行为树之间来回导航
- 标签2:列出场景或项目中的所有行为树(包括预制件)
- 标签3:列出场景中添加了行为树组件的任何游戏对象
- 标签4:列出从标签3中选择的附加到GameObject的任何行为树。
- 标签5:列出当前行为树引用的任何外部行为树
- 标签6:删除当前选择的行为树。
- 标签7:向GameObject添加一个新的行为树。
- 标签8:保持当前行为树活动,即使你在层次结构或项目窗口中选择了不同的游戏对象
- 标签9:将行为树导出到外部行为树资产。
- 标签10:打开查找对话框,可以搜索你的行为树。
- 标签11:获取当前行为树的截图。
- 标签12:显示行为设计者的偏好。
创建简单的自定义行为树
创建行为树需要选择一个GameObject,在行为树面板上会显示选择的GameObject
可以根据在上述1部分,右键创建一个行为树,选择的GameObject会自动添加Behaviour Tree组件
自定义一个Conditional
:
1 | using BehaviorDesigner.Runtime.Tasks; |
自定义一个Action
:
1 | using BehaviorDesigner.Runtime; |
将创建的BD挂到空节点,并重置坐标:
运行调试BD:
此时随机数是4,条件不满足:
重新调试,此时随机数是7,满足条件,执行Action,节点坐标发生变化:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 宝剑锋从磨砺出,梅花香自苦寒来!