UE4:行为树切换、条件判断、task返回

一、行为树切换

在UE4的AI系统中,如果需要指定ai使用的行为树,可以在aicontrol中通过run behavior tree节点启动



但有时候,我们需要在行为树中运行另一个行为树,如吃饭的时候,碰到其他人,需要聊天。

如果直接用aicontrol切换行为树,那么会导致,我聊天完切换回吃饭,要从头执行,即从头开始吃饭。这样显然是不方便的,因此,可以使用行为树中的run behavior节点

 

需要注意,通过此种方法切换行为树,新的行为树相当于作为一个子树,替代了原行为树中的Run behavior节点。当该子树执行完之后,则会去执行原行为树接下来的节点,而不是重新运行子行为树。

另外一点需要注意的是,子行为树与原行为树需要用同一种黑板,才能切换成功

二、条件判断

在行为树中,有时候需要添加条件判断,此时可以用blackboard based condition修饰器来作为分支,需要注意的是,如果使用变量是对象,则会检测对象是否被设置过,如果是bool变量,则is set和is not set分别代表True和False



但需要注意,此时添加了该装饰器的节点会返回失败值,如果上层是sequence并且想继续执行后续节点,则可以另外加一个force success装饰器

三、Task返回的坑

在行为树的task中,如果调用Finish execute节点,并不会立刻结束任务并返回


例如在loop中,某次循环调用了finish execute,并不会在这次循环时返回,而是会仍然执行到completed引脚之后的内容

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值