Unity Behavior Tree Editor 行为树编辑器实现 三

Unity Behavior Tree Editor 行为树编辑器实现 三

自己在Unity 上开发了一套 BehaviorTree 的插件
编辑的行为树配置以 Json 格式的文件存储。
编辑效果如下
在这里插入图片描述
使用说明
1.使用 Unity5.6及以上版本,导入 Import Package-> Custom Package… BehaviorTree.unitypackage
2.打开编辑器窗口
Window -> BehaviorTree
在这里插入图片描述
3.打开的编辑器窗口如上图
(3.1)选择文件:点击选择文件按钮,打开选择窗口,选择一个已保存的配置文件打开
(3.2)保存:首先在下方 文件名 输入框中输入文件名,然后点击保存,将配置文件以Json 格式保存在目录 Assets\SubAssets\BehaviorTree\GameData\BehaviorTree
(3.3)删除:点击删除按钮,删除文件名输入框所填文件
(3.4)批量更新:点击批量更新按钮,将Assets\SubAssets\BehaviorTree\GameData\BehaviorTree 下所有文件,经过修改后保存至 Assets\SubAssets\BehaviorTree\GameData\BehaviorTree\Json,具体修改逻辑需在 ConfigFileUpdate.UpdateData 函数中实现
(3.5)合并:点击合并按钮,将Assets\SubAssets\BehaviorTree\GameData\BehaviorTree 下所有文件以二进制形式合并保存至Assets\StreamingAssets\Bina\behavior_tree_config.bytes 和
Assets\SubAssets\BehaviorTree\Resources\behavior_tree_config.bytes 两个目录下
4.多选框
(4.1)Descript: 对该配置文件的描述:某某NPC AI配置文件等等
(4.2)Inspector: 行为树节点的属性参数,在后边讲述
(4.3)Parameter:行为树配置的所有环境变量
(4.3.1) 环境变量类型包含:float、int、long、bool、string
(4.3.2) 点击 导入变量 按钮,将配置表中变量导入至当前配置文件中,配置表目录为 Assets\SubAssets\BehaviorTree\GameData\CSVAssets\table_behaviortree.csv,包含变量英文名、中文名、类型、以及默认值
(4.3.3) 在窗口下方,选择变量类型,填写英文名、中文名、默认值,点击添加条件按钮,将变量添加值配置文件
在这里插入图片描述
5.编辑行为树节点
(5.1)添加节点:在窗口右侧空白处鼠标右键,在弹出菜单栏中选择需要添加的节点,点击鼠标左键,即可将节点添加至配置文件
注:需要添加一个组合节点作为行为树的跟节点(也叫入口节点)
在这里插入图片描述
(5.2)删除节点:选择一个节点,鼠标右键,在弹出菜单栏中选择 Delete Node
(5.3)节点添加子节点:
(5.3.1)按照步骤 (5.1) 在配置文件中添加多个节点
(5.3.2)选择一个组合节点,鼠标右键,弹出菜单栏,选择 Make Transition
在这里插入图片描述
(5.3.3)拉动鼠标,从选中节点上拉出一条连线,将连线拖拽到其他节点上方,点击鼠标左键,即可添加为子节点
在这里插入图片描述
(5.4)删除父节点,选择一个有父节点的节点,鼠标右键,在弹出菜单来中选择 Remove Parent
(5.5)添加子树:在空白处鼠标右键,弹出菜单栏中:AddSubTree-> 子树
子树节点也是组合节点
在这里插入图片描述
(1)添加叶子节点:条件节点和行为节点
在空白位置鼠标右键,AddNode -> 行为节点/条件节点 点击鼠标左键添加
在这里插入图片描述

6.在 (4.2) 处省略了的Inspector 在此处讲解
选择一个节点,然后选择 Inspector 选项,展示了所选节点的属性、参数,以及节点描述
在这里插入图片描述
如上图选择了节点,在 Inspector 面板下方显示的各项内容
(6.1) 选择一个并行节点
(6.1.1)节点类型以及节点id
(6.1.2)类标识:编写节点的代码脚本类名
(6.1.3)跟节点:当选择一个节点为跟节点时,需要在 Inspector 面板将跟节点勾选
(6.1.4)备注:对节点的一个简单的描述,方便在行为树中快速理解逻辑
(6.1.5)同步移动子节点:当节点有子节点,且勾选该选项,拖拽节点时子节点也会跟着一起移动
(6.1.6)组合节点功能描述:当前选择的组合节点的逻辑说明

(6.2) 随机权重节点
在这里插入图片描述
(6.2.1) 随机权重节点多了一项:需要填写每个子节点的随机权值

(6.3) IF 判断并行节点
在这里插入图片描述
(6.3.1) IF 判断节点可以配置 两个、三个子节点
(6.3.2) 可以在Inspector面板选择第二、三个节点的执行条件,这个执行条件就是第一个节点返回的执行结果,只可以是 Fail 或 Success

(6.4) 子树节点
在这里插入图片描述
(6.4.1) 子树类型:分为两种
普通:可编辑子树节点
配置:读取配置文件
(6.4.2) 子树类型为 普通:可编辑子树节点时,双击子树节点,可以打开一个新的编辑面板,在新打开的子树编辑面板中可以添加节点、删除节点、等各种操作
(6.4.2.1) 如果后续发现配置的子树可以被其他模块共用时,可以将已经配置好子树存储为一个单独的配置文件,在配置文件处出入需要保存的文件名,点击将子存储为配置文件按钮
在这里插入图片描述

(6.4.3)子树类型为 配置:读取配置文件 时,点击 选择子树配置文件 按钮,在打开窗口充选择一个配置文件,作为子树配置文件,然后双击子树节点,可以打开查看所选文件的配置,但是不可以在此处修改
在这里插入图片描述
(6.5) 行为节点
在这里插入图片描述
点击 添加条件 按钮,可以添加参数,当行为节点需要填一些信息的时候,可以给他添加参数,在代码中可以获取当前行为节点配置的参数值
(6.6) 条件节点
在这里插入图片描述
条件节点分两种,一种是如上:通用条件节点,另一种是自定义的条件节点
(6.6.1) 通用条件节点:
(6.6.1.1)点击添加参数按钮,添加参数,然后点击 添加组按钮,如上可以看到,该节点有三个参数,两个组
(6.6.1.2)该节点的执行逻辑如下
判断第一个组的两个条件,IsSurvial = true, TargetType >= 100,如果都满足返回 Success
判断第二个租的一个条件,HasEneny = false,如果满足 返回 Success
否则 返回 Fail
(6.6.1.3) 添加组的优点:有些逻辑判断可能需要多种不同的组合,添加多个组即可满足各种复杂的配置
(6.6.2) 自定义条件节点:
当某些逻辑比较复杂,或者有些参数变量的值不方便添加为行为树的环境变量时,需要自定义 xxx 逻辑判断的条件节点,通过代码逻辑来判断

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Unity Behavior Tree (行为树)是一种用于指导和控制游戏对象行为的强大工具。它通过定义分层树形结构来描述和组织游戏角色的行为方式,使游戏开发者能够更加直观地设计和调整游戏中的角色行为。 使用Unity Behavior Tree,开发者可以创建自定义的行为树,并根据游戏逻辑和需求来定义不同的节点类型。这些节点可以包括条件节点、动作节点和组合节点。条件节点根据一定的条件来决定行为的下一步操作,动作节点执行具体的行为逻辑,而组合节点用于组织和控制其他节点的执行顺序。 使用行为树,开发者可以更加灵活地定义角色的行为逻辑。可以通过节点之间的连接和条件判断来决定角色执行何种行为,并根据不同的游戏情况来调整和变化行为树的结构。这使得游戏角色在不同的情况下能够灵活地做出各种决策,增加了游戏的可玩性和深度。 Unity Behavior Tree还提供了可视化编辑器工具,开发者可以直观地设计和编辑行为树,而无需编写大量的代码。这使得游戏开发人员能够更快速地创建和迭代游戏角色的行为,提高开发效率和质量。 总之,Unity Behavior Tree是一个功能强大且易于使用的工具,可以帮助游戏开发者更加灵活地定义和控制游戏角色的行为。它提供了直观的可视化编辑器,使开发者能够更快速地设计和调整行为树,提高游戏的可玩性和深度。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值