behavior3java是一套与behavior3editor编辑器相配套的行为树框架。
- https://github.com/behavior3/behavior3editor 源码
- https://github.com/magicsea/behavior3editor/releases 桌面版本
使用桌面版本时候会出现b3文件,代表整个工程文件。 但是此时工程文件与导出project json 格式是不一样的。 所以导致报错不兼容,后期会区分加载b3文件与工程json
<dependency>
<groupId>com.github.silencesu</groupId>
<artifactId>behavior3java</artifactId>
<version>1.1.0</version>
</dependency>
//不包含子树的独立树
BehaviorTree behaviorTree = B3Loader.loadB3Tree(confJson, extendNodes);
//加载整个工程文件
BehaviorTreeProject behaviorTreeProject = B3Loader.loadB3Project(confJson, extendNodes);
BehaviorTree behaviorTree = behaviorTreeProject.findBTTreeByTitle("b1");//获取名字为b1的树
//该行为树所有数据都存储在blackboard中。
Blackboard blackboard = new Blackboard();
//驱动tick
behaviorTree.tick(new Object(), blackboard);
- Composite Node 组合节点
- Decorator Node 修饰节点
- Condition Node 条件节点(叶节点)
- Action Node 动作节点(叶节点)
- SUCCESS 节点执行成功
- FAILED 节点失败
- RUNNING 节点正在运行
- ERROR 程序错误
- Priorty(Selector) Node 选择节点
当执行本类型Node时,它将从begin到end迭代执行自己的Child Node: 如遇到一个Child Node执行后返回True,那停止迭代, 本Node向自己的Parent Node也返回True;否则所有Child Node都返回False, 那本Node向自己的Parent Node返回False。
- Sequence Node 顺序节点
当执行本类型Node时,它将从begin到end迭代执行自己的Child Node: 如遇到一个Child Node执行后返回False,那停止迭代, 本Node向自己的Parent Node也返回False;否则所有Child Node都返回True, 那本Node向自己的Parent Node返回True。
- Parallel Node (计划)
并发执行它的所有Child Node。 而向Parent Node返回的值和Parallel Node所采取的具体策略相关: Parallel Selector Node: 一False则返回False,全True才返回True。 Parallel Sequence Node: 一True则返回True,全False才返回False。 Parallel Hybird Node: 指定数量的Child Node返回True或False后才决定结果。
- Random 随机节点 (计划)
随机的执行节点
- Inverter
- Limiter
- MaxTime
- Repeater
- RepeatUntilFailure
- RepeatUntilSuccess
- Succeeder
- Failer
- Error
- Runner
- Wait