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