当前位置: 代码迷 >> 综合 >> Unity Behavior Designer的学习(二)
  详细解决方案

Unity Behavior Designer的学习(二)

热度:97   发布时间:2023-09-30 08:47:11.0

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

NPC的Tree:

Unity Behavior Designer的学习(二)

Unity Behavior Designer的学习(二)

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


Player:

Unity Behavior Designer的学习(二)

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

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

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

Unity Behavior Designer的学习(二)

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

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

Unity Behavior Designer的学习(二)

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

Unity Behavior Designer的学习(二)

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

我们把Sequence改为Self

Unity Behavior Designer的学习(二)

会发现

Unity Behavior Designer的学习(二)

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

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


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

Unity Behavior Designer的学习(二)

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

Unity Behavior Designer的学习(二)Unity Behavior Designer的学习(二)

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

Unity Behavior Designer的学习(二)Unity Behavior Designer的学习(二)


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

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

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

Unity Behavior Designer的学习(二)


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

  相关解决方案