Unity自带的动画状态机有一套对策划非常友好的UI。但是Unity官方没有公开这些控件的api。除了Asset Store里一些已有的方案,我在这里介绍一个在github上的开源项目,封装了底层,但依然有极高的扩展性的框架。一些特性依然处于WIP,但是目前的功能对我这种业余开发来说已经非常够用了。
链接 : https://github.com/Seneral/Node_Editor
github上有两个示例,一个是用来做带分支的对话树、另一个是用来合成贴图,可以看到其扩展性之强。
详细的使用方法在在 http://www.levingaeher.com/Node_Editor/ 。因为其本身自带的节点只能够做一些类似表达式计算的功能,想要真的用起来还需要我们自己去创建节点定义、连接定义。
扩展的主要对象是节点Node和连接Connection。Connection的意义在于自定义连接的类型,可以保证类型安全。GUI也支持带Layout的方法,可以说非常方便了。
我用这个插件把之前做的随机地图系统修改成了基于节点的配置方法,比起之前用ScriptableObject在各种文件间互相引用,这次可以说是一目了然了。