BehaviorTree.CPP行为树BT的入门(二)

节点与树

用户必须创建自己的ActionNodes和ConditionNodes(LeafNodes);该库可帮助您轻松地将它们组成树。

将LeafNodes视为组成复杂系统所需的构建块。

根据定义,您的自定义节点是(或应该)高度可重用的。但是,在一开始,可能需要一些包装接口来适应您的旧代码。

tick() callbacks

在生产代码中,尤其是在模型驱动开发和基于组件的软件工程中,操作/条件可能会与系统的其他组件或服务进行通信。

继承与依赖注入

要创建自定义TreeNode,您应该从适当的类继承。

例如,要创建自己的同步Action,您应该从SyncActionNode类继承。

另外,该库提供了一种机制,用于创建将功能指针传递给包装器的TreeNode (依赖项注入)。

数据流,端口和黑板

黑板是由树的所有节点共享的键/值存储。

端口是节点可以用来相互交换信息的机制。

使用黑板上的相同键“连接”端口。

必须在编译时知道节点的端口号,名称和端口种类(C ++); 端口之间的连接在部署时(XML)完成。

使用XML格式在运行时加载树

尽管事实上该库是用C ++编写的,但是树本身可以在运行时(更具体地说是在部署时)组成,因为在实例化Tree的开始只进行了一次。

原文

posted @ 2020-12-19 10:36  hokori  阅读(809)  评论(0编辑  收藏  举报