最近在玩 Unity,一个主流的游戏引擎,同类的产品还有 Unreal(虚幻引擎),而虚幻引擎里面有一个特别好用的功能:蓝图。
这个蓝图功能可以让你不写代码做游戏。
那么 Unreal 是怎么实现无代码做游戏的呢?先贴上一张Unreal 的蓝图:
上面这张图是Unreal 的一部分游戏代码,可以看到很多框框和线,这些框和线都是拖拽而来的,而灰色框部分则是一个组,包含一个小功能的蓝图,你玩的堡垒之夜,吃鸡类游戏可能就是用这个功能设计的,是不是很牛白~~
既然 Unreal 有这个功能,那么 Unity也会有的吧,果不其然,一搜索,就找到了 Bolt,来看看 Unity中的Bolt功能吧。
什么是Bolt
Bolt 是 Unity游戏引擎中的一个可视化脚本,它是一个Package,你可以在 Unity Asset Store当找到到它,直接点击”在Unity中打开“就可以直接导入这个包了。
使用 Bolt 插件,可以让艺术家、设计师和程序员无需编写任何代码即可创建游戏机制和互交系统。
Bolt开发实践
接下来,我们通过一个官方的Bolt教程,来实践下Bolt到底该怎么使用,现阶段这个游戏只实现了以下功能:
以上功能就能大概的让你了解下Bolt 的使用,如果你想查看完整的教程,请查看 Unity Bolt 官方教程。
导入Bolt包
打开 Unity Asset Store ,选择”在Unity中打开“,直接导入Bolt包,具体步骤可以看官网教程 。本文主要是实践下Bolt包的使用。
导入游戏资源
在Unity Asset Store中下载游戏中使用到的资源,资源中包括搭建好的场景,图片,音效,动画等。
玩家移动
打开游戏资源包,选择 Level1场景,然后点击 Player组件
在右侧属性栏中点击 Add Component,选中 Bolt→ Flow Machine创建一个宏,在 Macro 属性中创建一个 PlayerController 文件。
直接看玩家移动的蓝图:
通过上面的图,可以看到代码的运行逻辑,首先从 Update
事件开始,我们设置了 moveMent
变量的值,而这个值是通过键盘事件 input Get Axis
的x方向值 * 速度speed来得到的。
接着我们设置了玩家刚体的坐标,坐标值x是 moveMent
,而y则不变,因为玩家左右移动只需要改变x轴。
玩家反转的功能,是通过 Set Local Scale
来改变的,根据 moveMent
的值,0是不动,-1是向左,1是向右,如果这个值是 -1的话,玩家就要反转一下。
玩家行走动画
玩家的动画中有个 Speed
属性,只要它有变动,动画就会执行。
玩家跳跃
这里监听了键盘上的空格键,只要按下,玩家就添加了一个力,这个力在x轴是0,Y轴是取的一个 jump
的变量,它的值我设置的是12,就是说按下空格键,玩家就会向上跳12的力。
Bolt初体验
对于我来说,刚开发使用Bolt感觉很繁琐,一行代码可以搞定的事情,要拖拽好几个框框来解决,但是我相信,存在即合理,对于不会代码的朋友来说,使用Bolt绝对是不错的选择。
我也会继续尝试Bolt,因为虚幻引擎中的蓝图也是大规模的使用的,可视化编程是未来的趋势。
总结
通过Unreal蓝图功能,我们找到了Untiy中的Bolt,从Bolt的安装到实践,初步的体验了下官方Bolt教程中的基本功能,实现了玩家移动,跳跃等功能。
- Unity Bolt 是一个可视化脚本的包,它可以让你不写代码做游戏。
- Unreal蓝图和Unity Bolt具有同样的功能。