Unity节点编辑器(一) -- 需求分析
最近需求的思考
最近工作上在处理项目内的引导系统,我之前的做法是根据策划的需求,通过继承引导基类实现具体子类的做法,来实现不同的引导。但是这样有一个缺点:所有的引导实现都基于我的硬编码,当引导的流程变更的时候,我代码的流程也需要跟着修改,非常麻烦。而且这些变更也仅仅是步骤改变,1->2->3变成了1->3->2,修改就是纯粹的体力活,非常的琐碎。然后最近在各种机缘巧合之下,接触到了节点编辑器,突然激发了我的灵感,要是我把引导的逻辑封装在一个Node里面,由策划自己去建立Node流程,就是完全由策划编辑,我提供具体的引导Node实现,完美解决。
关于节点编辑器
其实这个东西在已经应用非常广泛了,Unity的ShareGraph和UE的蓝图,都是节点编辑器的应用。而且在Unity上开源的节点编辑器框架也不少,比较出名的就有:xNode,NodeGraphProcessor。本来是打算直接使用这些框架,省下自己造轮子的时间,但是深入了解之后,发现这些框架为了通用性,代码都比较多且太重度了(我目前的需求根本用不上)。所以就想着自己造一个只提供流程的简单节点编辑器。
编辑器需求
首先,因为颜值问题节点编辑器我选择了基于Unity的GraphView实现。要实现的需求:
1、GraphView的创建与资源的打开。
2、Node的创建、连接。
3、GraphView的保存、序列化/反序列化。
4、需要具有拓展性,为之后功能提供底层复用。
代码结构
因为编辑器窗口仅做显示和把数据保存,就只有model-view两层。model层为保存的Unity的so数据,view层则是解析so数据创建出对应的节点和连接。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 穿越时空的思念!




