Unity 可视化脚本 Bolt插件 使用评测

之前使用过Player Maker,就一直对类似的可以化脚本插件不太感冒,感觉很低级。最近看了Unity Asset Score排名,无意之中看到了Bolt还是第一名。(现在回想第一次听到它应该是在Unity做Shader Graph的直播上)。排名还是挺高的,好奇之下就下来玩玩,之后就不一发不可以收拾。

Unity 可视化脚本 Bolt插件 使用评测_第1张图片

整体特点:

1. 以Event驱动,分为Flow和Status两大逻辑控制单元,可以分别绑定对相应的对象上

2. 扩展性很强,自定义Event 、Wait等结点很方便。这样可以配合其它框架发挥1+1大于2的作用,比如:个人非常喜欢配合UniRX使用。使用它可以帮助或者说是强制我们使用ECS/MCV的模式进行解决问题,强制我们进行模块化、面向对象思考。这里还是推荐大家使用它进行UI层的控制。

3. 与控制模块交互很方便,调用底层代码要比Player Maker方便的多,还有常用的UnityEvent以及Variable。


下面是本人关注功能的实验内容

1. 结点

支持如下,其它不用太多说明,Event、Wait很丰富,另外Favorite下的第一个是指当前Flow或者status绑定的对象。可以通过其访问对象上绑定的脚本。

Unity 可视化脚本 Bolt插件 使用评测_第2张图片

访问脚本的Test方法过程如下,但每次修改调用接口脚本时,需要更新一下(Tools ->Bolt ->Update Unit options),这样有人会说不方便,本人感觉这样的限制会更好,毕竟这些在Bolt中调用类都是对外提供的接口,接口如果经常更新说明设计是有D e问题。Debug结点使用有点麻烦。对于方法的返回值,内置类型都支持(甚至是协程)    

Unity 可视化脚本 Bolt插件 使用评测_第3张图片

Unity 可视化脚本 Bolt插件 使用评测_第4张图片

如果需要返回自定义类,需要在以下界面中加入相应的类的定义。这样在 Variable中也可以使用了。

Unity 可视化脚本 Bolt插件 使用评测_第5张图片

2. 事件

基本包括了所有Unity支持的事件

Unity 可视化脚本 Bolt插件 使用评测_第6张图片

Unity 可视化脚本 Bolt插件 使用评测_第7张图片


Unity 可视化脚本 Bolt插件 使用评测_第8张图片

其中UnityEvent通过获取Flow或者Status组件,调用以下TriggerUnityEvent方法。

Unity 可视化脚本 Bolt插件 使用评测_第9张图片

UI事件支持,很方便。

Unity 可视化脚本 Bolt插件 使用评测_第10张图片

控制UI事件的触发
Unity 可视化脚本 Bolt插件 使用评测_第11张图片

3. 常量

支持以下五种常量,生命周期不同,本人只常用Scene和Object的,App可以做为单体使用。

Unity 可视化脚本 Bolt插件 使用评测_第12张图片

Unity 可视化脚本 Bolt插件 使用评测_第13张图片

如上图,定义Scene常量之后,会在对象所在的Scene中自动创建一个对象,通过以下结点进行设置

Unity 可视化脚本 Bolt插件 使用评测_第14张图片通过代码访问也很方便

Unity 可视化脚本 Bolt插件 使用评测_第15张图片

4. 自定义结点

这个是它的优势,以下是一个定义的Wait结点

Unity 可视化脚本 Bolt插件 使用评测_第16张图片

以下是加入结点属性的方法,定义了一个Second的ValueInput成员,其中PortLable属性是用于显示的属性名,如下需要Override Definition方法并把ValueInput加入到队列中,这样才能在结点UI中显示新的属性。

Unity 可视化脚本 Bolt插件 使用评测_第17张图片

Unity 可视化脚本 Bolt插件 使用评测_第18张图片

Unity 可视化脚本 Bolt插件 使用评测_第19张图片

5. 异步支持

常用的结点就是Wait结点了,直接支持协程结点,只不过使用不太方便,推荐使用自定义Wait进行封装。

Unity 可视化脚本 Bolt插件 使用评测_第20张图片


6. 运行时支持

Unity 可视化脚本 Bolt插件 使用评测_第21张图片

7. 性能

没有发现明显的性能问题

8. 版本控制

Flow或者Status就是一个Json文件,这样可以进行多人SVN的版本控制。


附:bolt 1.2插件分享,只用于学习参考。

链接:https://pan.baidu.com/s/1MZE1n3EGZuRKujZAp-Uw3Q 密码:s02l

你可能感兴趣的:(Unity)