在完成了地形弯曲的之后,我在想能不能加入一些其他游戏的元素来让这个机制变得更有趣一点。
在我看到《semblance》官方宣传gif图时,我立马联想到了《Baba is you》,也许我们可以加入拼字解谜来让整个游戏变得更加有趣
确定了要加入拼字机制之后,我决定先把目光转向《Baba is you》,看一下它是什么样的。
首先我们要做的是单词系统,毕竟得先有单词才能够去推动它们。
在制作之前,我们需要先添加一下TextMesh Pro这个插件。这个插件是由Unity官方提供的功能,可以让我们在场景里简便的添加文字,方便我们制作单词块。
导入之后,我们应当可以在Window菜单中看到TextMesh Pro有关的信息。之后我们在场景中创建一个3D-TextMesh Pro物体。这里会要求我们先导入有关的文件。
在成功导入之后,就可以看到场景中出现了一个绘制出来的文字对象。我们在对应组件的地方就可以随意修改它里面的文字,并且像一个普通3d物体一样控制它的位移、旋转等信息。
现在我们就需要创建一些之后可能需要用到的单词,修改样式,并统一一下它们的碰撞盒与字体的大小。这里我创建了代表门的door,代表墙的wall,代表地面的floor,代表激光的laser。还有代表推动的push,代表弯曲的soft,以及碰到就失败的defeat。当然,还有最重要的连接词is。
制作好了单词块,我们要让玩家能够推动单词块的移动。由于需要让单词块之间也能相互碰撞,所以需要在单词块被玩家推动时利用射线,检测推动方向上有没有其他单词。如果有单词块那么就需要一起推动。
如果最前方的单词在前进方向上检测到了墙壁,则需要停止移动。
在制作过程中,最好将推动代码单独放在一个脚本里当作一个功能模块,我们之后还可以利用这个功能模块为所有可以推动的物体提供推动功能。
做好了推字的功能之后,就需要实现游戏核心的拼字功能。通过is连接的两个单词块能够修改游戏规则,这里只接受从上到下或从左到右两个方向的组合。
就像《Baba is you》这个游戏一样,我创建了很多能够代表场景内某种物体的单词,以及对应了玩家动作还有游戏状态的单词,并为他们做了标记。同时我又在最特殊的is单词上挂载了一个脚本,用射线检测来判断is的上下左右触碰到单词块。
如果左右都有,那么就会去遍历找到左边或上方对应的物体,然后根据右边或下方的动词以及状态去切换游戏规则。
最后为了测试所有的功能,我搭建了一个新的关卡,在这个关卡中,利用了所有制作出的方块。
评论区
共 条评论热门最新