其他
Unity 2D教程 | 平台游戏(下)
最后这篇将添加一些收集对象、音乐、动画及关卡,来进一步完善这个小游戏。如果还未学习前两篇,请先查阅:
上篇:Unity 2D教程|平台游戏(上)
中篇:Unity 2D教程|平台游戏(中)
请点击【阅读原文】查看所有代码并下载示例工程。
Gravity Scale: 2
Angular Drag: 13
Jumpheight: 12
Movespeed: 4
更改属性后Rushdy反应将更灵敏,控制起来也更好玩。然后更改用于触摸控制的按钮大小,以更适应触摸屏的操作。最后在“File > Build Settings > Player Settings > Resolution and Presentation”设置下,取消勾选垂直方向,以保证游戏是横版显示的:
如果检视面板过于杂乱,可以新建游戏对象“Platforms”及“Hazards”作为分组节点,分别用于存放平台及障碍物。
新建GameObject命名为“collectibles”,用来存放所有的“Crystal”收集对象。选择您喜欢的音效拖拽到“collectibles”,在玩家收集水晶时播放。
在“Controls”脚本中新建公共变量crystals,int型,用来表示收集的水晶数量。然后新建脚本“Crystals”,与上篇教程中的“Hazard”脚本类似,区别在于玩家与水晶碰撞时,消失的会是水晶,并且将玩家对象的crystals值加1。
请点击【阅读原文】查看脚本代码。
将“Crystals”脚本绑定到对应的Prefab上,并将刚刚新建的“collectibles”对象拖拽至“Crystals”脚本的AudioSource字段中。保存后就可以随意在关卡中放置收集对象了。
再次新建脚本“Score”用来显示分数,将脚本绑定到刚刚新建的文本对象上。
请点击【阅读原文】查看脚本代码。
将这两张图加入场景,然后打开“Animation”窗口,可以看到其中的“Create”按钮。点击按钮即可创建动画,命名为“Idle”,然后系统会在Assets目录下自动生成包含该动画文件的文件夹“Animations”。
接着会看到Animation窗口下Idle右侧出现了两个小箭头,点击箭头后选择“Create New Clip”新建另一个动画“Walking”,使用两个小箭头可以快速切换这两个动画。
Animation窗口上会出现时间轴,用来调整动画对象的关键帧。Idle动画的关键帧是第一帧显示Rushdy,在1:30处将Rushdy设为半透明,然后再过几秒恢复正常。以同样的步骤设置Walking动画,中间的关键帧将Rushdy的Y轴缩小,让它显得比较“矮”,这样会有一个弹跳的效果。
打开“Animator”窗口会看到类似图表的窗口,目前的箭头指向是“Entry”到“Idle”,表示“Idle”是当前的默认动画。这里“Idle”和“Walking”都表示一种状态(由于目前动画非常简单,所以还无需用到Any State)。右键点击“Idle”选择“New Transition”,会新建箭头,拖拽箭头让其指向“Walking”。
设置好后点击“Animator”窗口上的“Parameters”,会看到“+”按钮,点击按钮新建bool型变量命名为Walking:
下面在“Control”脚本中加入Animator变量,并在Update函数中判断是否为移动状态。
请点击【阅读原文】查看脚本代码。
回到“Animator”窗口,打开检视面板上的“Conditions”选择“Walking”设为“true”,表示当Walking变量为“true”时就开始播放动画。取消勾选“Has Exit Time”,以免在动画还未播放结束就切换状态。
然后重复以上步骤,添加从“Walking”切换回“Idle”的状态转换。到此主角的动画就完成了,当然您还可以自由发挥,为敌人和其它物体也添加一些动画。
点击“File > New Scene”新建场景,利用之前创建的Prefab搭建新关卡的场景,也可以直接复制第一关的场景,在此基础上进行调整。编辑完成后保存新关卡,命名为“level2”。
下面在“Controls”脚本中添加顺利通过第一关后跳转到第二关的场景转换代码(通常会有专门的场景管理脚本)。
请点击【阅读原文】查看脚本代码。
最后在构建APK包时,记得在Build Settings中勾选所有关卡。现在这个2D平台游戏就比较完善了,赶紧动手试试吧!
这是一篇非常简单的2D游戏教程,但也包含了大量的Unity基础操作与脚本的概念。希望通过本教程的学习,大家对Unity以及平台游戏都有了基本的了解。当然还可以在此基础上继续改造,例如将主角设为自动向右前进的,就可以直接改造为之前为大家介绍过的无尽跑酷游戏。欢迎大家自由发挥想象力,创造出属于独一无二的玩法!
本文来源于:androidauthority.com
原作者:Adam Sinicki
Unity将于12月14-15日在北京举办Vision VR/AR Summit Asia 2016,精彩内容抢先曝光!
Vision VR/AR Awards 2017亚洲区作品火热征集中!获奖者更有机会前往美国参与颁奖盛会!