选择节点和条件节点和并行节点这种非叶子节点都有一个中止类型

当某个分支下某一个节点处于running时,会向父节点返回running状态,并将父节点设为running状态,然后一直往上传递记录,传递完成,当前行为树完成,等待下一次(下一帧)时重新进入分支时,会从孩子列表中寻找running状态的节点更优先继续执行。

Self:当自身的孩子节点中有一个running状态时,自身不会设为running状态,而是设为初始状态。
当自身是选择节点时,自身子节点执行顺序不受running影响了,当返回success或者running时,会将记录的那条running节点重置恢复,
当自身是选择节点时,running之前的节点执行顺序不受running影响了,返回failure或者running时,会将记录的那条running节点重置恢复,

LowerPriority:当running节点是比自身优先级低时,会将自身的状态设为running,下次执行的时候会优先执行自身这个running,
当父节点是选择节点时。自己的执行顺序不会受优先级低的running节点影响,当自身返回success或者running时,会将记录的那条running节点重置恢复。如果自身子节点返回的是running,保留这一条running状态。否则将自身这一条也重置掉
当父节点是顺序节点时,自己的执行顺序不会受优先级低的running节点影响,,当自身返回的事failure或者running时,会将记录的那条running节点重置恢复,如果返回的是running时,会保留自身这一条running,否则自身也会重置

Both:LowerPriority+Self

添加自定义行为:
根据需求,创建一个类继承这四个类中的一个
,就可以在面板上添加了,其实翻一下源码,其实都是继承了Task类。
Composites和Decorators因为不是叶节点,需要封装一层(ParentTask),记录所有的子节点,根据需求当子节点返回状态时,处理后选择是向父节点返回状态还是选择下一个子节点执行,还是根据Abort类型进行处理后在执行
里面的核心主要是一些周期函数
Void OnAwake() 只执行一次
Void OnStart() 当前任务开始执行时只执行一次
TaskStatus OnUpdate() 返回这个任务当前的状态:Inactive,Failure ,Success ,Running根据父节点任务进行选择是继续执行还是中止。

获取某个行为树中某个Task:
获取行为树:先找到游戏物体,在直接通过GetComponent()获取
获取行为树上的Task:通过调用BehaviorTree对象中API
T FindTask() where T : Task;通过类型获取
Task FindTaskWithName(string taskName),通过任务名字获取,然后在转成子类就可以了

搜索是通过DFS进行搜索,如果有相同的,最前面的优先。应当采用
List FindTasks() where T : Task;
List FindTasksWithName(string taskName),

变量共享可以通过黑板模式,定义一个公共使用的黑板类。将变量赋值和使用

Behavior Designer插件解析相关推荐

  1. 使用Behavior Designer插件简单制作NPC AI

    简单用Behavior Designer插件实现:当敌人发现玩家后开始追踪玩家,当追上玩家时发动攻击 Behavior Designer自带了一些Task,但是要实现自己的需求,必须动手写自己的Tas ...

  2. Unity Behavior Designer插件 任务模块

    写在前面 由于项目需要用行为树插件,在学习过程中发现网上关于行为树的资料实在太少,大部分都是蜻蜓点水般略过,就连官方的脚本文档和教学视频也是一般般,导致我在使用时不断采坑,故开一篇博客来完善大部分行为 ...

  3. Behavior Designer笔记

    1.总览 Behavior Designer是一个行为树程序.他为所有人设计-程序美工策划.Behavior Designer提供很好很强大的API,允许你愉快的进行玩耍.他和PlayMaker和uS ...

  4. Unity3D Behavior Designer 行为树1 认识

    环境:Unity2017.4 语言:C# 总起: 行为树,我很早就了解到了这个插件,不过对于它究竟是什么其实概念上比较模糊,这次正好趁机我们一起来学习一下(跟渲染一样AI也是个大坑). 本次教程基于插 ...

  5. Behavior Designer 干货总结

    Unity3D上,实现简单AI最好的工具,莫过于BehaviorDesigner了. 虽然我自己也写过行为树,虽然也用过别的小伙伴写的行为树,虽然也用过企鹅社公开的行为树,虽然一大堆,但是的确没有哪个 ...

  6. Behaviac 和 Behavior Designer两者的区别

    PS:该篇文章主要记录了behaviac和behavior的区别,如果没有兴趣可跳过. 想了解behaviac可转至:[Behaviac与Unity整合使用] 想了解behavior designer ...

  7. Eclipse安装 Activiti Designer插件

    为什么80%的码农都做不了架构师?>>>    前言:刚开始采用网上介绍的在线安装方式,Eclipse Plugin: http://activiti.org/designer/up ...

  8. Qt Creator添加Qt Designer插件

    Qt Creator添加Qt Designer插件 添加Qt Designer插件 查找Qt Designer插件 在macOS上配置Qt Designer插件 匹配的构建密钥 添加Qt Design ...

  9. Skywalking光会用可不行,必须的源码分析分析 - Skywalking Agent 插件解析

    3 Skywalking源码导入 接上文,已经学习了Skywalking的应用,接下来我们将剖析Skywalking源码,深度学习Skywalking Agent. 3.1 源码环境搭建 当前最新版本 ...

最新文章

  1. 解读 | 2019 年 10 篇计算机视觉精选论文
  2. c语言小于n的素数和,关于求N以内素数的一点小问题(N小于一亿)
  3. 我做的4周岁儿童编程课程【视频】分享
  4. Scala Spark Streaming + Kafka + Zookeeper完成数据的发布和消费
  5. maven 父maven_Maven的鸟瞰图
  6. 常规单元测试和存根–测​​试技术4
  7. php怎样查看视频播放的进度条,H5中视频与音频标签和进度条如何使用
  8. HTML中del标记是什么意思,HTML del标记
  9. @RequestBody应用,requestbody
  10. axure rp 使用心得
  11. delphi 控件安装
  12. 在 SQL Server 的存储过程中调用 Web 服务
  13. def __init__(self)是什么意思_Python入门一篇搞懂什么是类
  14. Proteus仿真:简易独立式键盘
  15. Ps的变换、蒙版与色彩平衡
  16. AB 系统OTA升级
  17. 数学单位M和单位B是什么意思
  18. 斐波那契数列的四种实现方式(C语言)
  19. 深度学习中端到端(end-to-end)简要理解
  20. C Note(NO.5)

热门文章

  1. 首届搜狐杯“一站到底”重磅上线,关于“你”我们来真的!
  2. linux 科学计算器_探索Linux作为科学计算平台
  3. VS2010连接数据库时,发现没有oleDbCommand或oleDbConnection控件
  4. Echart前端的修饰器,你不来看看吗?
  5. stm32使用串口进行通讯之发送数据
  6. 电脑硬盘分区太多?分区合并有方法!
  7. QT5 使用163邮箱发送邮件
  8. 【脚本】交通标志数据集 清华Tinghua100K 标签文件 .json 解析内容
  9. 天天当键盘侠,你知道从按键到响应的底层原理吗?
  10. 计算机系统英语作文结尾万能句子,英语作文万能句子:结尾万能句