其他
Unity 2D教程|平台游戏(上)
通过本教程的学习,大家将可以了解到Unity在2D方面的功能及操作,了解掌握UI、2D物理及输入控制等相关内容。本教程共分为三部分,今天先为大家介绍上篇。游戏最终效果如下:
这里将工程命名为“Rushdy Worm”,这也是游戏主角的名称。
脚本声明了两个公共变量,您可以在编辑器或其它脚本中进行修改。第一个“rb”是角色的“Rigidbody 2D”组件的引用,“movespeed”则是角色的移动速度。
在Start函数中,需要为“rb”变量赋值。,并在Update函数中,实现监听左、右方向键的输入,并根据输入为角色添加相应的加速度,也就是给予角色一个向左或向右的动量。
回到Unity编辑器,将Controls脚本拖拽至角色游戏对象“rushdy”上,在检视面板中将脚本的“movespeed”属性值设为“3”。现在点击运行,就可以使用左右方向键来移动角色了。
此时点击运行,会发现主角从平台上掉落时会不停地旋转。应该怎么样处理呢?您可以选中“rushdy”对象,在检视面板上展开Rigidbody 2D组件的Constraints,勾选条件“Freeze Position Z”。这样主角在下落时就不会发生旋转了。
另外大家还可以按照自己的喜好添加背景。比如这里我们可以,为游戏添加背景图片“stars”,将背景图片的“order in layer”属性设为-1,这样就会渲染在所有对象的后方。然后将“stars”坐标的“Z”值设为20,并将Main Camera的渲染模式从“Projection”更改为“Perspective”,即设置相机为透视相机。这样就为背景添加了深度,角色在移动时,背景移动的速度会相对慢很多。
利用复制粘贴的方式在场景中新建一个Image,重命名为“Left”,将Scale的“X”值设为-1让箭头翻转显示。同样打开锚店设置面板,将“Left”的锚点设为左下角,让其始终显示在屏幕左下角。
新建一个空的游戏对象命名为“TouchController”,作为放置两个箭头的容器。打开锚点设置面板,将“TouchController”锚点设置为横向拉伸,让它始终保持与屏幕一样的宽度。
然后在Controls脚本中声明两个bool类型的公共变量,moveright及moveleft。为此需要在Update函数中做出一定修改。
该脚本引用Controls脚本中的moveright及moveleft变量,并用两个函数分别为它们赋值。moveright和moveleft会用于控制主角的移动方向。
对于update函数的修改以及新建的“Touch”脚本,各位可通过点击[阅读原文]进行查阅。
将Touch脚本拖拽至之前创建的游戏对象“TouchController”上。选中Project视图的“Right”对象,点击检视面板上的“Add Component”按钮,依次选择“Event > Event Trigger”添加事件触发器,然后点击“Add New Event Type”添加两个事件类型,分别是“Pointer Down”和“Pointer Up”,分别在点击图片和松开时触发。
将TouchController游戏对象拖拽至两个事件的对象属性栏,然后就可以选择相应的触发函数了。为“Pointer Down”触发器设置触发函数“RightArrow”,同样的,“Pointer Up”触发器设置触发函数“ReleaseRightArrow”。这样,在进行输入操作后,就会调用相应的函数去更改moveright和moveleft的值。
以同样的步骤设置“Left”对象,并添加触发器与相应的触发函数。
上篇的内容就介绍到这里,下一篇将继续为大家讲解,如何为主角添加跳跃、降落以及死亡粒子效果,并添加障碍物等相关内容。请保持关注。
本文来源于:androidauthority.com
原作者:Adam Sinicki