UE4 行为树装饰器(Decorator)简单实用说明(1)

      在行为树标准模型中,条件语句为 Task 叶节点,除成功和失败外不执行任何操作。虽然也可以使用传统的条件 tasks,但还是强烈推荐您使用 Decorator 系统作为条件语句。

使用 decorators 而非 tasks 作为条件语句有多个明显优点。

       首先,条件 decorators 使行为树 UI 显得更加直观易读。条件语句位于其所控制分支树的根部,因此一旦条件语句未被满足,便可直接看到树的哪个部分被“关闭”。此外,所有叶节点均为行动 tasks,因此更容易分辨树在对哪些实际行动下达命令。 在传统模型中,条件语句混于叶节点中,因此需要花更多时间分辨哪些叶节点是条件语句,哪些叶节点是行动。(UE4官方说明文档中对Decorator的解释) 


      在我使用过程中对装饰器的理解是:装饰器是UE4行为树的判定节点,简单来讲就是它用来判定行为节点是否执行,以及行为节点执行后的结果反馈和处理。

      当装饰器作为判定节点使用时候,通常我们要覆盖重写(Override) PerformConditionCheck或者PerformConditionCheckAI函数,我推荐使用后者,因为后者自带了2个参数, OwnerController(当前行为树所有者的控制器,也就是你运行的AIController),ControllerPawn(当前行为树所控制的pawn,简单来讲就是你要控制的Actor),比如我从AIController派生了一个MyAIController,控制了一个叫MyAIActor的角色,那么使用时候就很方便,直接把参数OwnerController 转换为MyAIController(CastToMyAIController),把ControllerPawn转换为MyAIActor(CastToMyAIActor)。


       这就是一个简单的判定节点的装饰器,当PerformConditionCheckAI 函数返回真时候,则其修饰的节点才会运行,如果返回假,则下方节点就不再运行了

       如上图,如果BTDecorator_IsAround节点返回值为false,则就不会执行BTTask_TestAround节点了。下一篇再继续讲装饰器的另外一个作用:行为节点执行后的结果反馈和处理。



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值