接上一篇,这里做一个简单案例,用行为树插件实现AI巡逻和追随,这里需要用到行为树插件的第二种Behavior Designer - Movement_Pack_v1.3.2,同样在AssetStore中可以找到,在行为树插件的第一篇中的链接里面也有,这里不贴出,导入这个插件,这个插件主要的功能是用来控制行为树中的移动功能。
设置两个目标点,添加一个敌人,让它开始巡逻,这里巡逻用到了Actions下的Movement里面的patrol任务,参数也是很简单,这里直接贴出,设置好路径点,给敌人添加上行为树,这个敌人的巡逻也就做好了
我的Speed和AngularSpeed使用的是行为树插件里面的局部变量,这个变量可以在Variable面板中添加和设置,也可以直接进行赋值,我的Variable面板设置如下:
Name表示局部变量的名称,Type表示变量类型,设置后就变成了下面的EnemySpeed,这样就可以直接进行局部变量赋值了,方便之后的使用。这样,敌人的巡逻就完成了
接下来,完善追随,这个就是主角身上的行为树了,追随用到了条件的判断,如果当前看到了敌人,那么就开始追逐,要是没看见就直接去到目标位置,所以这里需要进行选择,也就是用Composites里面的Selector,第一种情况,看见了敌人,做个判断,是否看见敌人,用Conditionals里面的条件句CanSeeObject,看见了就执行追逐,用Actions里面的Seek进行处理,这两个是一个顺序的行为,所以要放在Sequence下,另外一种情况就简单了,直接使用Seek向目标点移动的执行,如下图:
在Sequence的左上角有个箭头标志,这个东西的作用是表示可以打断箭头方向的行为,执行其他行为,这个标志只有Composites可以使用,因为它是用来控制流程,所以这个打断就是它特有的。
行为树的简单的介绍和了解也就到此结束了,Over。