Unity 可视化编辑工具 树节点 Tree Node Editor 四
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)SpriteManager
为 BaseSprite
的管理类,
(4)BaseSprite.Init
方法中实例化 BTConcrete
(行为树实例)
(5)SpriteBTUpdateManager
为 行为树的管理类
在 SpriteManager
添加 BaseSprite
的时候,将 BaseSprite
的 BTConcrete
添加到 SpriteBTUpdateManager
在 SpriteManager.Update
中驱动 SpriteBTUpdateManager.Update
在 SpriteManager
删除 BaseSprite
的时候,将 BaseSprite
的BTConcrete
从 SpriteBTUpdateManager
移除
(6)ActionBase、ConditionBase、NodeSubTreeDynamicBase
继承了 IBTActionOwner
,可以根据自己项目修改
项目地址依然粘贴在下面,如何让 AI 动起来,在下篇中讲解
Unity 可视化编辑工具 树节点 Tree Node Editor 四相关推荐
- Network学习16_WireEdit :一款编辑网络数据包的可视化编辑工具
WireEdit 是一个用来编辑网络数据包的可视化编辑工具,同时也是一个跨平台的网络数据包编辑器.它可以在可视化界面以"丰富文本格式"来编辑所有的堆栈层数据包,输入输出的文件格式为 ...
- 优秀的在线XML可视化编辑系统介绍(Boxth Visual Xml Editor)
XML可视化在线编辑工具 --业内首创的在线可视化XML结构化数据编辑方法 Boxth Visual XML Web Editor (Boxth XWE) 是专为在线处理XML结构化数据而设计的在线( ...
- 常用PDF编辑工具 Adobe Acrobat、PDF-XChange Editor 、福昕PDF编辑器、PDFelement
1.Adobe Acrobat 链接: https://pan.baidu.com/s/1TNJTZrgt0mz2ZB7aP9u3HA 提取码: g9r9 2.PDF-XChange Editor ( ...
- MSCRM 2011 可视化Ribbon编辑工具,超级强大!
编辑Ribbon是一个繁琐的工作,看着XML代码,还要知道Button所在的位置,有时候不得不去查找SDK里原始的Application Ribbon的代码来确定它所在的位置. 但是,有了这个可视化编 ...
- behavior3go行为树节点类型介绍
behavior3介绍 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.行为树节点类型 二.行为树节点Composites组合类说明 三.行为树节点Action ...
- ajax与easyui树节点,EasyUI中的tree用法介绍
真的是太忙了,本应该有好多东西可以写,但是没什么闲时间,每次想到写的时候,来点事就又给忘了.10月最后一天了,在忙也得把这篇文章写完,不然又得多一个空白月了. 这是之前带领成员开发一个小模块功能的时候 ...
- 终于来了!Python 编辑神器 Jupyter ,推出首款官方可视化 Debug 工具!
以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核. Python 代码编辑器怎么选?PyCharm.VS Code.Jupyter Noteboo ...
- qtreeview编辑节点文本_[我花2个月做了叙事短篇游戏]我是怎么做游戏编辑工具的...
前言 本来应该前两天就会更新这一篇内容的,但是由于去做视频去了,耽搁了两天,虽然视频本身做的质量不算高,但是主要有部分游戏内容展示,大家对游戏感兴趣的可以支持一下呢 [国产剧情像素游戏]史上最惨男主( ...
- 分享5个可视化的正则表达式编辑工具
分享5个可视化的正则表达式编辑工具 发表于2014-11-27 16:19|11596次阅读| 来源CSDN|52 条评论| 作者张红月 正则表达式可视化工具RegexperDebuggexPyreg ...
最新文章
- “云智一体”的全场景智能视频技术是什么?
- 拨出网线后,网卡IP丢失
- 为什么 Python 的 Range 要设计成左开右闭区间?
- python中定义类
- 工程制图 (零件图)
- 从串行线程封闭到对象池、线程池
- C/C++字符串输入方法比较(带回车不带回车输入)
- Python快速调用Teambition接口
- 7-2 最大流 加强版 (20 分)
- Golang Post传参调用示例
- ZetCode JavaScript 教程
- 监控三剑客<cacti、nagios、zabbix>
- cad导出pdf_CAD如何批量导出PDF文件?别说PDF了!GIF我都能给你导出来
- 8b/10b编码技术系列(二):Disparity、RD、8b/10b编码
- CSS如何使用伪元素选择器给所有的div里的文本前面添加小写罗马数字编号
- 图片存放在服务器还是数据库里的解释?
- vs2010 无法启动程序 系统找不到指定的文件
- 汶川大地震的捐款风波
- PostGIS 路线规划
- SQL 的日期函数 day() 、month()、year()