Unity Behavior Designer的学习(二)

通过一个实战案例,展示了如何使用 BehaviorDesigner 制作 NPC 巡逻和玩家跟随 NPC 的行为。详细解析了 Sequence 中不同 Aborttype 的工作原理及 Variables 的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过对Behavior Designer 的学习,我们来实现一个小例子,NPC在巡逻,玩家在走动,如果在走动的过程中遇到NPC,则会追随NPC

NPC的Tree:


如上可以看到Speed是巡逻的速度,Angular Speed 是旋转的速度,Arrive Distance 是距离目标点0.1米就认为已经达到目标点,Waypoints是GameObject,就是两个巡逻的点


Player:


先解释Sequence中的Abort type(有条件的异常终止) :

这是官网文档的链接:http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=89

Lower Priority:上图就是应用了Lower Priority :当当前分支右侧任何任务处于活动状态时,将重新评估。

如上图所示,Sequence和右边的Seek比较,首先的Sequence是不满足不能执行的,因为还不能看到物体,所以先执行Seek

,但是Sequence一直在判定是否满足执行条件。然后随着Seek的执行。执行到这一步


Sequence满足执行条件了,于是打断Seek执行,开始执行Sequence,Player跟随NPC。


Self:将在当前分支中的任何任务处于活动状态时重新评估。

我们把Sequence改为Self


会发现


player并不会跟随NPC,这也是很正常的,Self只能中断其自身,意思是在Sequence下,当右边的Seek运行时,会一直判定

Can See Object 如果满足Can See Object,会中断右边的Seek ,执行左边的Can See Object。


Both:将在右侧或当前分支内的任何任务处于活动状态时重新评估:


他会先执行Seek,当看到物体时同样会打断Seek,执行左边的Sequence下的节点,而Sequence下的Seek执行时,同时还会一直判定Can See Object,当Can See Object不满足条件时,Sequence返回false,执行右边的Seek。


当NPC消失在player的视野外,会这样:



Conditional Aborts就介绍到这里了,下面还要提一提Variables。

Variables的官方文档:http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=50

定义一个全局变量之类的,可以通过小圆点绑定这个变量



如图,可以用来传递和绑定变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值