假装有个前言
试图开始学习Unity,选择做个完整的游戏入门,于是看上了flappy bird,做了个简易版的。这篇博文大概是笔记性质,记录一些我自己的理解之类的,如果有什么错误欢迎各位大佬指出,非常感谢 ♪(・ω・)ノ
素材有一些是从原游戏中抠图的,有一些是自己随便画的,比较粗糙。
工程文件下载:http://download.csdn.net/download/dango_miracle/10251992
或者:https://github.com/Aelinuial/Unity-Flappy-Bird
一.要创建多少个场景(scene)?
视频处理的知识里面说:语义上相关和时间上相邻的若干组镜头组成了一个场景。
我个人的理解大概就是一些相似的画面可以归类成一个场景,比如说背景相同的那部分。这样分起来大概就是开始界面一个场景,游戏主体一个场景,结束界面一个场景。而同一个场景中的对象,直接通过激活和激死来控制它是否显示即可。
实际操作的时候我把游戏主体和结束界面的场景合并了。下面是创建的两个场景:
场景之间的切换:
SceneManager.LoadScene("start");
二.同一个场景内的画面切换
比如说本来是画面一,点击按钮以后切换成画面二:
//关闭排行榜
public void ClickClosePanel_Rank()
{
if (panel_rank.activeSelf)
{
panel_rank.SetActive(false);
}
if (!panel_start.activeSelf)
{
panel_start.SetActive(true);
}
}
大概就是先判断当前这个对象是否正在被显示,如果现在是显示状态,就把它关掉,反之亦然。
三.在脚本里创建完对象一定要给它赋值啊
在脚本里创建完对象,如果不告诉它到底要控制的是哪个对象,就会报空。
为什么我每次都要等到报错才想起来,摔 (╯‵□′)╯︵┻━┻
四.鼠标点击和触屏控制
因为这个游戏里只用到了鼠标左键单击或者单个手指点击,所以还是很简单的:
//鼠标左键点击
if (Input.GetMouseButtonDown(0)){
//这里写具体动作
}
//单个手指点击
if(Input.touchCount == 1){
if (Input.touches[0].phase == TouchPhase.Began){
//这里写具体动作
}
}
五.什么是单例模式
看了个视频,视频里也没有讲清楚,暂时先放着以后再学吧 (:з」∠)
六.水管位置随机
我居然以为地图都是人工指定的,我可能是傻的。不过还是想不通,如果水管都是在坐标范围中随机出现的话,很有可能产生前后两个水管的位置差距太大而不可能飞过去的情况。感觉这种情况还需要再讨论一下?
背景倒是同一张图,每当它离开画面左边一定距离后就让它从右边回来:
七.试图鬼畜:让水管动起来!
总想搞点鬼畜的东西伤害玩家,于是想到了让水管动起来。使用的操作是给水管添加动画(animation)。
步骤是选择水管 → Window(Animation) → Create → Add Property → Anchored Position ,然后就跟添加关键帧一样了。感觉我这里的控制有点奇怪,数值总是莫名跳回去……似乎要先移好时间点,改好数值然后再添加关键帧。
八.好像,暂时没了
这个游戏里大概就学到了这些,暂时先这样吧 (๑•̀ㅂ•́)و✧