引言
相信大家一定有玩过一款曾经风靡一时的手游《Flappy Bird》,这款游戏以“手残克星”而著称,却又让人停不下来。
今天我将介绍如何使用Unity3D制作这款游戏
素材准备
首先我们需要准备游戏中需要使用到的素材,主要是图片和声音文件
图片素材
声音文件
在收集了基础素材之后,还需要将基础素材转换为Unity材质
Unity材质球
除了text之外,剩下的材质球需要设置模式为Unlit/Transparent
搭建基本场景
现在有了基本的素材,我们需要搭建一个基本的场景。
这里我创建了两个场景,分别是Android和PC。没错,Unity可以使用同一份代码生成多个端的发布版本。这里我们开发Android版本。
首先,我们需要准备几个基本的prefab, prefab就是Unity中的预制组件。我们使用prefab来简化工程模型。
建立Prefab-bg
这就是一个基本的bg单元,它由4根管道组成,每两根管道中间有一个Trigger(触发器),用来检测玩家通过障碍,以此来记录分数,触发渲染后面的管道,管道自身带有Collider(碰撞体),大小与模型一致。此外还有一个碰撞体与模型一致的地面。这些组件就构成了一个基本的bg元素。
bg元素在游戏中将被动态加载,只需要调整4根柱子的高度,就可以组合为连绵不绝的管道游戏地图。建立Prefab-bird
bird就是我们玩家操控的那个小鸟
小鸟的组成主要就是贴图,碰撞体,同时绑定了bird_a作为控制代码。
我们把bg和bird放到舞台上,添加一个正交视角的摄像机作为游戏的主视角,再添加一个主光源。游戏的基本框架就搭好了。
编写游戏的控制代码
bird_a读取按键或者键盘事件,控制小鸟跳跃
FollowBird 这个是主摄像机的绑定事件,控制摄像机跟着小鸟一起移动
GameManager 这个是Unity保留文件,必须要有的一个文件,负责整个游戏的主循环控制
gamemenu 负责控制失败后继续的菜单界面
GroundCollision 负责控制地面的撞击事件
ImmediatelyScore 负责实时更新当前分数
MenuAnimation 负责菜单展示时的动画
MoveTriger 负责处理管道间的触发器
pipe 负责在bg生成时随机微调管道的高度
pipeUpOrDown 小工具 判断管道是上管道还是下管道
TryAgain 失败后再来一局
写完代码程序,我们的游戏就完成了。
游戏视频详见如下链接:
链接:https://pan.baidu.com/s/1qvdYaMT-ggbMizFG4UHx9A
提取码:agia
如果您有仿真或编程方面的需求,可以通过微信公众号找到我们呦~
微信公众号:320科技工作室