Behavior Designer笔记

一、

新建一个C#脚本,打开

脚本中引用

using BehaviorDesigner.Runtime.Tasks;

二、

1、定义组合节点

脚本继承  Composite   

 

保存,我们可以在BehaviorDesigner窗口中,对应的节点中看到,新添加的成员

如下图:

 应为我们添加的Composite,所有它就出现在了,Composites下面

 

同理,分别继承Decorator,Action,Conditional,就是不同的节点类型。保存后他们就会出现在对应的类型下面。

 然后我们分别去重新他们对应的相应函数即可。

 

三、添加分类,说明,和节点对应的Icon

在类名上方添加【XXX】:

分类:[TaskCategory("自定义名字")]   

描述:[TaskDescription("自己测试")]

Icon:[TaskIcon("{SkinColor}LogIcon.png")]

 

如下图(一个Action的节点,Icon设置为了LogIcon),对应的显示

 

 

节点介绍

一、Condition 条件判断节点

条件成立返回 true,否则返回false

二、装饰节点

装饰模式最主要的原理就是给对象附加额外的功能

 

conditionalEvaluator  节点,就是给它的子节点添加了条件, 成立才执行它的子节点,不成立就不执行

选中它在inspector中,添加条件

 

 

不成立就返回false,不执行下面的

成立才执行,返回值,由子点决定(执行,返回false)(执行,返回true)

 

三、Composite 复合节点 

解决节点运行顺序的问题

1、         Paraller 平行节点

(只要一个子节点返回失败,这个节点就返回失败,全部成功,才成功)

 

 

2、Selector

(子节点是从左到右依次执行,而且只有当 前一个失败 才会去执行下一个 直到其中一个节点返回成功,它就返回成功,同时停止迭代 (全部失败才返回失败))

(第一个返回成功,就停止迭代)

(前一个失败 才会去执行下一个直到其中一个节点返回成功)

(全部失败,就返回失败)

 

3、Sequence

(子节点是从左到右依次执行,而且只有当 前一个成功 才会去执行下一个 直到其中一个节点返回失败,它就返回失败,同时停止迭代 (全部成功才返回成功))

 

 

 

 

4、Priority Selector 优先选择

我们可以在Priority Selector中看到

它有float priority = children[i]. GetPriority();

然后是比较priority大小,越大优先级越高。

然后F12 进去看

它是一个虚方法。

所以,我们需要在它的子节点中去,重新它的GetPriority();返回优先级

 

然后我们返回,到Behavior Tree