Node脚本

可以存在于 NodeCanvas Graph 中的所有节点的基类

重要属性以及方法

Status枚举

节点状态

Status Execute()

频繁(间隔)调用,运转节点

Status OnExecute()

子类覆写这个方法,定义节点功能(Action节点的功能实现)。用于启动 Graph 的 Agent 和 Blackboard 被传播

Graph脚本

这是 NodeCanvas 和图形的基类和主类。所有的图形系统都是从这个派生的

重要属性以及方法

UpdateMode枚举

Graph的更新模式(参见“StartGraph”),Behavior Tree Owner 面板的UpdateMode

void UpdateGraph()

更新图表。通常,这由 MonoManager 更新,因为在 StartGraph(在Graph脚本下) 时,此方法已注册以由 GraphOwner 更新。
startGraph 时 将UpdateGraph发送给MonoManager 管理
image.png

graphSource属性

计时数据

image.png

GraphSource脚本

实际的图形数据,Unity/Json 混合序列化,这里实例化一个用于存数据
image.png
image.png

connections属性

image.png
image.png
可以通过取消勾选,断掉运行

ActionNode脚本

ActionNode.cs调用的OnExecute其实是ActionTask的Execute
image.png
image.png这里的_action的值其实是赋值的ActionList,相当于父类装子类,所以Action节点能增加多个task组件

ConditionTask 和 ActionTask都继承Task

用于添加任务,任务能累加(因为他俩有List子类,如ActionList)

ActionList脚本

用于存储多个ActionTask

ActionsExecutionMode枚举

将task组件的执行顺序进行操作,并行或者顺序执行。这里可以做文章,以后对Action节点进行修改,添加一个
ConditionTask在Actiontask里头,避免 Squence + Condition + Action的组合。

任务组件

任务组件编写

image.pngimage.png
ActionTask:Action节点的核心,如果需要一个自定义task组件,需要继承ActionTask
image.png
有些组件的waitAction 其实就是锁死EndAction();
image.png

装饰节点用法

image.pngInvert 装饰节点 返回Success的Action变为

动态添加Task

先靠Tag找到当前Action或者其他节点,然后自己加task
image.png
image.png