大家好,

我一直在为Unity开发一个免费、源代码可用的行为树工具,以便在我的个人项目中使用。现在,我想分享它给大家,以便如果它对大家有用的话。

GitHub:https://github.com/vadimburym/DODBT

行为树的核心思想很简单:行为树只负责做出决定,其他所有事情(如移动、动画等)只是执行这些决定。同时,我也尝试将实际的生产流程考虑在内:开发者构建行为树,设计师调整它,QA人员调试它,然后我们将优化的版本发布。

关于它实际上做了什么:

在运行时没有 MonoBehaviour,运行时没有分配。一个编译好的树可以在多个代理之间共享,而每个代理都有自己的上下文和状态。它附带了一个可视化图形编辑器和一个运行时调试模式,图形在编辑器中被编译成一个运行时形式,因此编辑器的数据永远不会出现在您的构建中。它没有强制 Blackboard 的要求,因此叶子可以通过 DI、ServiceLocator 或直接上下文来拉取依赖项。它也可以与 ECS 一起使用,如果您只想将其作为决策层。

一些诚实的警告:

编辑器和调试工具目前需要使用 Odin Inspector,虽然运行时/构建侧面不依赖它。目前还没有装饰器。它是一个早期版本,但已经可用。它可能对游戏和 AI 编程人员更有趣,而不是寻找一个全面的拖放 AI 解决方案的人。

在路线图上,我已经有一个单独的 DOTS 兼容版本大部分工作正常。Burst、BlobAsset 和 Jobs 兼容性,以及一些质量的生活提升,已经完成。还在待办列表中:代码生成、DOTS 版本的调试模式、装饰器、更多示例、更好的文档、通用打磨,以及希望将编辑器工作不依赖于 Odin。

如果任何 Unity 游戏、AI 或工具的人想看一看,我真的很感激您的反馈。以下是一些我真实不确定的问题:

这个架构是否符合您构建项目的方式?
哪些装饰器您希望添加第一?
Odin 依赖性是否仅限于编辑器和调试工具是可以接受的?
哪些示例或文档实际上可以使它更容易采用?
ECS 决策层的想法是否清晰,还是我应该更好地解释它?
您是否更喜欢它在更宽容的许可证下,如 MIT 或 Apache-2.0?
感谢您的阅读。