创建复合节点
在大多数情况下,您不需要扩展复合节点。"大多数情况"是指您可以创建非常复杂的行为树来执行非常复杂的任务,除非您真的需要,否则您真的不应该扩展或创建复合节点。
实际上,复合节点会影响行为树的流程,包括执行哪个节点、检查哪些装饰器以及激活哪个服务。默认情况下,只有三个:选择器、序列和简单并行。这些将足以覆盖我们的大部分情况。
然而,如果您确实有特定的需求,那么虚幻引擎非常灵活,它允许您扩展复合节点。
首先,在蓝图里这是不可能实现的,所以你只能通过C++来扩展现有的(或创建一个新的)复合节点。
让我们来看一个例子,为什么你想创建一个新的复合节点。
为什么:因为你可以在行为树中实现一个流程,这个流程用当前的复合节点可能很难(或不可能)实现。
一个例子:你可以用简单并行节点来模拟一个行为树,而另一个不使用它们。但这会非常复杂且不太干净。因此,使用简单并行节点可以大大简化工作流程(最初,在引擎的第一个版本中,并没有简单并行节点)。
一个具体的例子:你想在这个自定义复合节点下面随机选择要执行的任务,基于一些权重。例如,权重可以通过一种特殊类型的装饰器来评估。因此,扩展一个复合节点可能需要在其他类型的节点上做额外的工作。
另一个具体的例子:你可以创建一个复合节点,不断随机选择一个子节点,直到达到阈值或其中一个子节点报告失败。
尽管这是一个非常有趣的话题,但不幸的是,它超出了本书的范围。因此,我们将限制自己创建新的任务、装饰器和服务。
最后更新于