Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Saroce/BehaviorTreeEditor

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BehaviorTreeEditor

目录结构

  • BTCore
    • Data:BT数据导出目录,数据序列化保存格式分为Json、MemoryPack两种可自行选择
    • Editor:编辑器部分,引用到Odin插件做编辑处理
    • Runtime:注意Runtime部分需要支持脱离Unity环境运行,因此不能引用到任何Unity相关API和特性,用到了json序列化库Newtonsoft.JsonMemoryPack二进制存储方便序列化处理数据,你也可以替换为其他序列化保存方式
    • Runtime.Unity:需要引用Unity部分的代码请放入这个目录,目前暂未实现主体逻辑,待扩展

使用说明

若只在Unity里面用,正常使用即可,挂载上BehaviorTree组件,或者其他反序列化BT数据后做Tick操作即可。当需要支持BT.Runtime部分脱离Unity环境运行,用于服务端或者帧同步框架上时,可以直接拷贝源码,或者独立生成BTRuntime.dll到外部工程,引用上Newtonsoft.JsonMemoryPack即可。节点的Inspector面板和黑板面板都是用Odin插件实现编辑效果,支持节点变量绑定黑板数据,实现逻辑可以看BTCore.Editor部分代码

功能实现

  • 行为树节点数据编辑,黑板功能实现
  • 支持节点赋值粘贴、撤销回退,运行时预览状态
  • 右键实现节点分类搜索框、选中自动生成对应节点
  • 实现组合节点3种中断机制,Self、LowerPriority、Both
  • 增加对单个节点的注释,新增节点Group、StickyNotes(版本需2020往上)
  • 支持Json、MemoryPack两种格式序列化/反序列化

注意事项

  • 注意只有节点数据支持撤销、重做, Group、StickNote节点不支持。右上角新增设置按钮,可进行序列化方式的切换
  • 使用MemoryPack进行数据序列化的时候,请注意抽象类/接口和他们的派生类分布在不同的程序集,为了实现正确的序列化、反序列化,需要手动进行注册,开始运行时调用一次即可,参考MemoryPackDynamicUnionRegister这个类

效果图

编辑效果图 Group、StickNote在节点搜索框分类的Others里面。注意按住Shift建后,再点击Group里面的节点才能拖拽出组!

节点中断机制

编辑效果图 增加了组合节点的中断功能,如图所示Sequence设置了LowPriority,当按钮按下时,能够打断右边的持续性Action节点运行,整体思路可参考BehaviorDesigner

外部工程使用说明

编辑效果图 打开Scenes/2. ExternalNode.unity场景,里面有提供一个简单的示例Demo,相关脚本在Examples/ExternalNode目录下。提供了Condition,Action外部节点类型扩展,一般来说外部工程的代码不放到Unity里面,无法识别具体的类型,Unity侧提供了ExternalCondition,ExternalAction两个节点做编辑占位处理。在每个节点Inspector上有对应的映射字段TypeName便于创建对应外部类型,Properties字段方便向外部传递数据。运行时会将占位节点替换为具体映射类型,然后重建树节点之间的连接关系

参考

About

基于Unity3D的UIToolkit实现行为树编辑器,Runtime部分支持导出到服务端,帧同步框架运行。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.