Unity 可视化编辑工具 树节点 Tree Node Editor 四

接上一篇Unity Behavior Tree Editor 行为树编辑器实现 三

上一篇主要讲解编辑器的使用,像关于自定义条件节点和行为节点是如何添加的等一些问题这一篇给与说明。

1.一般情况下,组合节点和修饰节点是不需要修改添加的,而条件节点和行为节点会根据需求变化不断添加。
打开 BehaviorConfigNode.cs
组合节点添加在 BehaviorConfigNode.PrimaryNode() 函数中
如下

Config<NodeSelect>("选择节点", (int)NODE_TYPE.SELECT);

自定义节点
行为节点继承 ActionBase
条件节点继承 ConditionBase
BehaviorConfigNode.Init() 函数中添加自定义的行为、条件节点

Config<PlayerAttackAction>("Player/攻击");

为了方便为某些节点添加默认参数,可以在
BehaviorConfigNode.ConfigDefaultParameter<T>(List<string> parameterList) where T : NodeBase, new() 函数中添加

2.扩展:动态子树
当一个角色在不同等级或者条件下,需要多种不同的AI配置,可以使用动态子树,然后通过代码逻辑动态的替换为不同的 AI 子树。
添加方法如下:
定义 子类 继承 NodeSubTreeDynamicBase 然后添加到 BehaviorConfigNode.PrimaryNode()
重写 CalculateNewSubTree() 方法,在该方法中判断当前要使用哪个子树配置文件,然后调用 SetSubTreeConfig(string config) 方法,如下

3.行为树编辑完毕,项目中如何使用?

在打开项目附带的 Human Scene,即可运行查看AI效果
(1)ConfigLoad 类加载配置文件 Assets\SubAssets\BehaviorTree\Resources\behavior_tree_config.bytes
(2)BehaviorData 类解析配置文件
(3)SpriteManagerBaseSprite 的管理类,
(4)BaseSprite.Init 方法中实例化 BTConcrete (行为树实例)
(5)SpriteBTUpdateManager 为 行为树的管理类
SpriteManager 添加 BaseSprite 的时候,将 BaseSpriteBTConcrete 添加到 SpriteBTUpdateManager
SpriteManager.Update 中驱动 SpriteBTUpdateManager.Update
SpriteManager 删除 BaseSprite 的时候,将 BaseSpriteBTConcreteSpriteBTUpdateManager 移除
(6)ActionBase、ConditionBase、NodeSubTreeDynamicBase 继承了 IBTActionOwner,可以根据自己项目修改

项目地址依然粘贴在下面,如何让 AI 动起来,在下篇中讲解

Unity 可视化编辑工具 树节点 Tree Node Editor 四相关推荐

  1. Network学习16_WireEdit :一款编辑网络数据包的可视化编辑工具

    WireEdit 是一个用来编辑网络数据包的可视化编辑工具,同时也是一个跨平台的网络数据包编辑器.它可以在可视化界面以"丰富文本格式"来编辑所有的堆栈层数据包,输入输出的文件格式为 ...

  2. 优秀的在线XML可视化编辑系统介绍(Boxth Visual Xml Editor)

    XML可视化在线编辑工具 --业内首创的在线可视化XML结构化数据编辑方法 Boxth Visual XML Web Editor (Boxth XWE) 是专为在线处理XML结构化数据而设计的在线( ...

  3. 常用PDF编辑工具 Adobe Acrobat、PDF-XChange Editor 、福昕PDF编辑器、PDFelement

    1.Adobe Acrobat 链接: https://pan.baidu.com/s/1TNJTZrgt0mz2ZB7aP9u3HA 提取码: g9r9 2.PDF-XChange Editor ( ...

  4. MSCRM 2011 可视化Ribbon编辑工具,超级强大!

    编辑Ribbon是一个繁琐的工作,看着XML代码,还要知道Button所在的位置,有时候不得不去查找SDK里原始的Application Ribbon的代码来确定它所在的位置. 但是,有了这个可视化编 ...

  5. behavior3go行为树节点类型介绍

    behavior3介绍 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.行为树节点类型 二.行为树节点Composites组合类说明 ​三.行为树节点Action ...

  6. ajax与easyui树节点,EasyUI中的tree用法介绍

    真的是太忙了,本应该有好多东西可以写,但是没什么闲时间,每次想到写的时候,来点事就又给忘了.10月最后一天了,在忙也得把这篇文章写完,不然又得多一个空白月了. 这是之前带领成员开发一个小模块功能的时候 ...

  7. 终于来了!Python 编辑神器 Jupyter ,推出首款官方可视化 Debug 工具!

    以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核. Python 代码编辑器怎么选?PyCharm.VS Code.Jupyter Noteboo ...

  8. qtreeview编辑节点文本_[我花2个月做了叙事短篇游戏]我是怎么做游戏编辑工具的...

    前言 本来应该前两天就会更新这一篇内容的,但是由于去做视频去了,耽搁了两天,虽然视频本身做的质量不算高,但是主要有部分游戏内容展示,大家对游戏感兴趣的可以支持一下呢 [国产剧情像素游戏]史上最惨男主( ...

  9. 分享5个可视化的正则表达式编辑工具

    分享5个可视化的正则表达式编辑工具 发表于2014-11-27 16:19|11596次阅读| 来源CSDN|52 条评论| 作者张红月 正则表达式可视化工具RegexperDebuggexPyreg ...

最新文章

  1. “云智一体”的全场景智能视频技术是什么?
  2. 拨出网线后,网卡IP丢失
  3. 为什么 Python 的 Range 要设计成左开右闭区间?
  4. python中定义类
  5. 工程制图 (零件图)
  6. 从串行线程封闭到对象池、线程池
  7. C/C++字符串输入方法比较(带回车不带回车输入)
  8. Python快速调用Teambition接口
  9. 7-2 最大流 加强版 (20 分)
  10. Golang Post传参调用示例
  11. ZetCode JavaScript 教程
  12. 监控三剑客<cacti、nagios、zabbix>
  13. cad导出pdf_CAD如何批量导出PDF文件?别说PDF了!GIF我都能给你导出来
  14. 8b/10b编码技术系列(二):Disparity、RD、8b/10b编码
  15. CSS如何使用伪元素选择器给所有的div里的文本前面添加小写罗马数字编号
  16. 图片存放在服务器还是数据库里的解释?
  17. vs2010 无法启动程序 系统找不到指定的文件
  18. 汶川大地震的捐款风波
  19. PostGIS 路线规划
  20. SQL 的日期函数 day() 、month()、year()

热门文章

  1. CAD利用Excel快速绘制多段线
  2. Revit二次开发——族库管理插件的开发思路
  3. eclipse 编码时 代码上的横线
  4. 我了解的百度排名算法因素
  5. 基于HC-SR04的超声波测距模块
  6. 计算机企业社会实践活动鉴定范文,计算机专业社会实践自我鉴定范文
  7. c语言中的下标变量是什么,c语言中数组的下标从什么开始?
  8. [work]Hackintosh
  9. 电视台以IPTV系统为载体扩展融媒体解决方案
  10. 晋升答辩,leader嫡系拿着我和另一个同事的项目去答辩,关键我们三个人是同一组答辩,这也太恶心了吧?...