基于烟雨大佬分享
大家可以去看大佬的文章博客,里面很多很多干货
https://www.lfzxb.top/a-visual-tool-for-npbahave/
基础
1.准备好Odin插件
2.准备好unity
开始
1.扩展Odin的NODE节点功能(即面板上显示的节点)
由于提供的节点是abstract partial关键字,所以可以分文件填充内容,我们以最基础的行为树节点数据展开。
这里拓展了一个获取NP_NodeDataBase数据的虚函数,后面各个类型节点都会实现自己不同的数据方式,这里的数据才是我们最终需要使用的数据
2.构造行为树节点的基类,同时注意类型传递typeof (NeverbeUsedCanvas),这样在我们用到的canvas里面不会有这个基类的选择
3.在这个基类上扩展各种行为树功能节点,具体就不一一介绍,注意类型需要传递我们要使用的canvas类型typeof (NPBehaveCanvas)
4.构造我们自己需要使用的canvas界面基类,即上面各个类型需要的类型,并提供一些基础功能:1.填充数据字典npDataSupportorBase(里面包含了两个,一个是行为树的基础数据节点,一个是技能数据节点);2.保存文件,序列化与反序列化上面数据节点;3.烟雨大佬这里还提供了一个反序列测试的功能
5.构筑真正的行为树Canvas,基于上面的基类,增加了行为树数据字典,以及技能数据字典两个数据功能。
6.自动填充功能说明:清空两个数据字典,然后根据canvas里面的节点,进行遍历,获取各个节点内部的真正数据内容,然后填充到两个数据字典内。需要注意行为树节点,有个link需要设置,用于判定行为树的流程
至此ODIN结合NPBehave的基础数据就做好了,接下来就是获取这些NPBehave基础数据,然后行为树跑起来,等有空再来续写