行为树 BehaviorTree
过去十年中组成AI的事实上的标准。 行为树由节点树组成。 节点可以根据世界状况做出决策并执行操作。 它包含一个BehaviorTreeBuilder类,它提供了一个用于设置行为树的API。 BehaviorTreeBuilder是一种减少使用行为树并快速启动和运行的入口障碍的好方法。
Composites
Composites是行为树中的父节点。 他们容纳一个或多个子节点,并以不同的方式执行。
- Sequence:一旦其子项返回失败,就返回失败。 如果子项返回成功,它将在树的下一个tick中顺序运行下一个子项。
- Selector: 一旦其子任务之一返回成功,它就会返回成功。 如果子任务返回失败,那么它将在下一个tick中顺序运行下一个子任务。
- Parallel: 运行每个子项直到子项返回失败。 它与Sequence的不同之处仅在于它在每个tick中运行所有子项
- ParallelSelector: 类似于Selector,除了它将运行所有子项的每个tick
- RandomSequence: 在执行之前将其子项打乱的序列
- RandomSelector: 在执行之前将其子项打乱的Selector
Conditionals
条件是二进制成功/失败节点。 它们由IConditional接口标识。 他们检查游戏世界的某些情况,并返回成功或失败。 这些本质上是特定于游戏的,所以只提供一个开箱即用的通用Conditional和一个包装Action的帮助条件,这样你就可以避免为每个Conditional创建一个单独的类。
- RandomProbability: 当随机概率高于指定的成功概率时返回成功
- ExecuteActionConditional: 包装一个Func并将其作为Conditional执行。 用于原型设计和避免为简单条件创建单独的类。
Decorators
装饰器是具有单个子项的包装器任务。 他们可以通过各种方式修改子任务的行为,例如反转结果,运行直到失败等。
- AlwaysFail: 无论子结果如何,总是返回失败
- AlwaysSucceed: 无论子结果如何,总是返回成功
- ConditionalDecorator: 包装一个Conditional,只有在满足条件时才会运行它的子节点
- Inverter: 反转其子项的结果
- Repeater: 重复其子任务指定的次数
- UntilFail: 继续执行其子任务,直到它返回失败
- UntilSuccess: 继续执行其子任务,直到它返回成功
Actions
动作是行为树的叶节点。比如播放动画,触发事件等。
- ExecuteAction: 包装一个Func并将其作为动作执行。 用于原型设计和避免为简单操作创建单独的类。
- WaitAction: 等待指定的时间
- LogAction: 将字符串记录到控制台。 用于调试。
- BehaviorTreeReference: 运行另一个BehaviorTree
继续阅读与本文标签相同的文章
上一篇 :
浅谈APP应用实现转化成交的四大重要举措
下一篇 :
自适应canny检测
-
5G远程驾驶和微公交首秀互联网大会
2026-05-14栏目: 教程
-
学宏程序编程,这些知识必不可少!
2026-05-14栏目: 教程
-
华为准备卖出“落后”的5G,多家美企极力竞争!任正非格局太大!
2026-05-14栏目: 教程
-
百度:飞桨深度学习平台已累计服务150多万开发者
2026-05-14栏目: 教程
-
滴滴公布安全功能数据:近2亿用户添加紧急联系人
2026-05-14栏目: 教程
