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)SpriteManagerBaseSprite 的管理类,
(4)BaseSprite.Init 方法中实例化 BTConcrete (行为树实例)
(5)SpriteBTUpdateManager 为 行为树的管理类
SpriteManager 添加 BaseSprite 的时候,将 BaseSpriteBTConcrete 添加到 SpriteBTUpdateManager
SpriteManager.Update 中驱动 SpriteBTUpdateManager.Update
SpriteManager 删除 BaseSprite 的时候,将 BaseSprite BTConcrete SpriteBTUpdateManager 移除
(6)ActionBase、ConditionBase、NodeSubTreeDynamicBase 继承了 IBTActionOwner,可以根据自己项目修改

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值