里约热内驴 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 Bolt介绍前言:想实现类似橙光游戏、互动视频的效果。如果用代码编写,过多的分支节点会难以管理,如果有类似虚幻蓝图的可视化编程方式将极大方便工作开展。先是找到PlayerMaker插件,觉得编写有局限性较大。而后找到Bolt插件,发现符合需求,自由度够高。 0 插件介绍
Ludiq网站:https://link.csdn.net/?target=https%3A%2F%2Fludiq.io%2Fbolt Bolt官方文档:https://docs.unity3d.com/bolt/1.4/manual/index.html 0.0 视频教程
1 基本配置1.1 插件导入从Asset Store搜索Bolt,导入插件。 点击Tools》Install Bolt,等待插件安装。 点Next进入导向,模块命名方式有两种,程序员选Programmer Naming,符合编程习惯,非程序员选另一个,模块命名更像人话。 啥都不用改,点Next继续,点Generate等待执行完毕,插件配置结束。 1.2 界面布局为方便编程,要把常用窗口调出来。先在Layout中将布局设置回默认状态。 菜单栏Window,分别调出Graph(蓝图编辑窗口),Graph Inspector(组件属性编辑窗口),Variables(变量创建窗口)。拖到如图对应位置,在Layout中保存该布局,命名为Bolt,方便以后使用。 2 插件说明介绍一些概念。 2.1 蓝图插件可以创建两种蓝图进行可视化编程,分别是Flow Machine和State Machine。
蓝图有两种模式,Embed和Macros。
它两的区别是,内嵌模式可以将场景中已经存在的物体直接拖进蓝图中参与处理(参考已经挂载到物体上的脚本,如果其中定义了公开变量(public),可以通过直接拖拽场景中的物件对这个变量赋值),相比宏模式不支持这个操作。 这里我第一次用的时候就很迷惑,发现场景中的物体不能拖进来使用,因为像C#脚本挂载到物体上后就是可以对Public变量赋值的,后来才发现要转Embed模式。其实它这么设计也有一定用处,就是当你再改模板的时候,你转为Embed模式的蓝图不会受到影响。但是Macro模式为什么不能拖物体这里就有点奇怪,因为写C#脚本跟这个Macro模式是一样的,就是写一个可以复用的模板,而它挂载到物体上就是实例化了这个脚本,是可以使用场景中的物体来对变量赋值的。 2.2 变量数据格式类型,像整形、浮点型、布尔型等,该有的都有,也没啥好说的。 主要是数据管理类型,分为Graph、Object、Scene、App和Saved。
3 插件使用这里简单实现一个按钮点击后,产生其他新按钮的效果(类似互动视频、橙光游戏的效果)。 我当时做项目的思路是在Canvas下生成Button,并用Layout Group进行自动排列。 Canvas上挂载蓝图状态机,并设置一个整形变量以确定跳转的分支点,设置布尔型变量以触发分支跳转。 Button做一个预制体,这个预制体在点击后按钮会修改Canvas中分支变量和跳转触发变量,以实现分支的跳转。 最后效果是实现了,但是每次添加分支还要手动设置一下分支号,感觉设计的还是不够合理。
懒了,先不写了,有可能也会停更。 |