Unity3D行为树插件BehaviorDesigner(八-复合节点 )

1.Sequence(序列)节点

这个节点是一个“和”的关系,也就是它下面的子节点的执行顺序是一个接着一个的,如果其中一个返回 false,那么后续的子节点不会被执行,这个序列节点返回 false。只有当所有子节点全部完成并返回 success 的时候,这个 Sequence(序列)节点才会返回 success。

2.Selector(选择)节点

这个节点是“或”的关系,也就是他下面的子节点的执行顺序是一个或另一个的,只有所有子节点返回 false 才会返回 false。只要有一个子节点返回 success,那么这个 Selector 节点就会返回 success,后续的节点不会被执行。

3.Parallel(并行)节点

这个节点类似于 Sequence(序列)节点。不同的是,Parallel(并行)节点会在同一时间执行所有子节点而不是一个一个的去执行, 如果子节点中有任意一个返回 false,则停掉所有子节点并返回 false。只有所有子节点全部返回 success 的时候,才会返回 success。

4.Parallel Selector(并行选择)节点


类似于 Selector(选择)节点,Priority Selector(并行选择) 节点只要有一个子节点返回 success,那么它就会返回 success。不同点在于,子节点的执行顺序不是从左到右的,而是通过优先级来确定的执行顺序,较高的优先级的子节点会被先执行。

5.Random Selector(随机选择)节点


这个节点的特点是:随机的执行子节点,只要有一个子节点返回成功,它就会返回成功,不再执行后续节点。如果所有子节点都 返回 false 则它也返回 false。 在这个节点的属性面板中有:seed(随机种子)的设置,自行使用。

6.Random Sequence(随机序列)节点


类似于 Sequence(序列)节点,只是他的执行顺序是随机的,只要遇到一个子节点返回 false,RandomSequence(随机序列)就 返回错误,直到全部子节点都返回 success,它才会返回 success。 在这个节点的属性面板中有:seed(随机种子)的设置,自行使用。

7.Selector Evaluator(重复判断选择)节点


这个节点每帧都会去重新评估子节点的执行状态并选择。它会执行子节点中优先级最低的子节点,每帧都会这么干。如果当前一个高优先级的节点在运行并且下一帧要执行的子节点优先级比较低,那么它会打断高优先级的节点,去执行优先级低的子节点。 Selector Evaluator(重复判断选择)节点 会从低到高的去遍历执行所有子节点,直到遇到一个返回 success 的。如果所有子节点都返回 false,那么它就返回 false,否则只 要有一个返回 success,它就会返回 success。这个节点模拟了条件打断功能,如果子节点没有条件节点的话。

8.Conditionals(条件判断)节点


条件节点的任务是判断游戏的一些属性,比如玩家是否活着,怪物是否在视野距离内。

9.Random Probability (随机概率)节点


通过设置 successProbability 属性来控制返回 success 的几率(默认 0.5,也就是 50%几率),另外还有seed 随机种子的设置等。

10.Compare Field Value(字段比较)节点


比较指定的值的字段值。 返回成功如果值是相同的。

11.Has Received Event(是否接收到事件)


12.Decorators(修饰器)节点


这种节点的功能是用来包装另一个节点(只能有一个子节点)。Decorators(修饰节点)将改变节点的行为,例如:修饰节点可以 再运行时控制子节点直到返回某个特定状态(success 或者是 false)。后者是对子节点返回结果取反(即:success 返回 false,false, 返回 success); 下面来介绍 BehaviorDesigner 默认自带的几个 Decorator(装饰器节点)

13.Conditional Evaluator (条件节点的评估) 装饰节点


参数设置: 

1:reevaluate :条件节点是否需要每帧都重新评估一次 

2:conditionalTask:要被评估的条件节点,注意:这个节点本身就是个条件节点。 对设置的条件节点进行评估,如果条件节点返回 success,那么运行子节点并返回子节点的运行结果,如果条件节点没有返回 success 那么子节点不会被运行,并且立刻返回 failure。条件节点只会在开始运行的时候被评估一次。

13.Interrupt(打断)装饰


如果打断节点被触发,则打断下面的所有子节点任务的执行。打断命令可以被 Perform interruption(执行打断)节点发起,打断 节点在收到打断命令前,不会打断他下面的子节点的执行状态!如果子节点执行完毕还没有收到打断命令,则直接返回子节点的 执行结果。例如下图这样:


14.Inverter(取反)装饰节点


子节点的任务完成后返回值,在这个节点会被取反并传递到上一级中。

15.Repeater(重复/循环)装饰节点


有三个属性设置:执行次数,是否一直重复,运行直到返回错误。


16.Return Failure (返回失败)装饰节点


只要子节点当前的状态不是 running,也就是子节点执行结果无论是 success 还是 failure,都返回 failure。如果子节点状态是 running 的话则返回 running。

17.Return Success(返回正确)装饰节点


只要子节点当前的状态不是 running,也就是子节点执行结果无论是 success 还是 failure,都返回 success。如果子节点状态是 running 的话则返回 running。

18.Task Guard(任务守卫)装饰节点


类似于多线程互斥操作中使用的 Lock 标记,为了避免公共数据被多次引用,下图以外部行为树为例进行演示,这里使用并行触发 两个外部行为树,如果不加上 TaskGuard,那么两边都会去并行执行外部行为树,现在加上 TaskGuard 后同一时间只能执行一个, 而另一个要等待执行完毕才能执行。


上图 TaskGard 配置如下图:


19.Until Failure(直到失败)装饰节点


直到子节点返回 failure,否则一直循环执行子节点, 如下图:


20.Until Success(直到成功)装饰节点


直到子节点返回 success,否则一直循环执行子节点。

本人的个人网站:

http://www.swordmaster.info/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容

  • Behavior Designer 概述 第一部分是主要的设计工作的区域!在这个区域,你可以创建新的 Task(任...
    JumboWu阅读 48,510评论 5 57
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,642评论 18 139
  • Conditional aborts(条件终止)允许你的行为树动态的改变,而无需使用很多的类似于 打断/执行打断(...
    SwordMaster阅读 4,508评论 0 2
  • 高个子爷爷差不多一七八的个子,身板笔直,长腿瘦高。爷爷手里拎着一个塑料水壶,另一个手提着一个方型布包。 紧随其后的...
    怀昙忆蝶阅读 483评论 0 1
  • 我时刻提醒自己身体是自己的 不要熬夜 关灯之后 反反复复睡不着 拿起手机盯着屏幕 眼睛格外酸痛 按了电源键 重新躺...
    冉妹阅读 114评论 0 0