【Unity】第一次使用Unity:Flappy Bird

假装有个前言

试图开始学习Unity,选择做个完整的游戏入门,于是看上了flappy bird,做了个简易版的。这篇博文大概是笔记性质,记录一些我自己的理解之类的,如果有什么错误欢迎各位大佬指出,非常感谢 ♪(・ω・)ノ
素材有一些是从原游戏中抠图的,有一些是自己随便画的,比较粗糙。
工程文件下载:http://download.csdn.net/download/dango_miracle/10251992
或者:https://github.com/Aelinuial/Unity-Flappy-Bird


一.要创建多少个场景(scene)?

视频处理的知识里面说:语义上相关和时间上相邻的若干组镜头组成了一个场景。
我个人的理解大概就是一些相似的画面可以归类成一个场景,比如说背景相同的那部分。这样分起来大概就是开始界面一个场景,游戏主体一个场景,结束界面一个场景。而同一个场景中的对象,直接通过激活和激死来控制它是否显示即可。
实际操作的时候我把游戏主体和结束界面的场景合并了。下面是创建的两个场景:
【Unity】第一次使用Unity:Flappy Bird_第1张图片

【Unity】第一次使用Unity:Flappy Bird_第2张图片

场景之间的切换:

SceneManager.LoadScene("start");

二.同一个场景内的画面切换

比如说本来是画面一,点击按钮以后切换成画面二:

//关闭排行榜
    public void ClickClosePanel_Rank()
    {
        if (panel_rank.activeSelf)
        {
            panel_rank.SetActive(false);
        }
        if (!panel_start.activeSelf)
        {
            panel_start.SetActive(true);
        }
    }

大概就是先判断当前这个对象是否正在被显示,如果现在是显示状态,就把它关掉,反之亦然。
【Unity】第一次使用Unity:Flappy Bird_第3张图片

【Unity】第一次使用Unity:Flappy Bird_第4张图片


三.在脚本里创建完对象一定要给它赋值啊

在脚本里创建完对象,如果不告诉它到底要控制的是哪个对象,就会报空。
为什么我每次都要等到报错才想起来,摔 (╯‵□′)╯︵┻━┻
【Unity】第一次使用Unity:Flappy Bird_第5张图片

【Unity】第一次使用Unity:Flappy Bird_第6张图片


四.鼠标点击和触屏控制

因为这个游戏里只用到了鼠标左键单击或者单个手指点击,所以还是很简单的:

//鼠标左键点击
if (Input.GetMouseButtonDown(0)){
	//这里写具体动作
}

//单个手指点击
if(Input.touchCount == 1){
	if (Input.touches[0].phase == TouchPhase.Began){
		//这里写具体动作
	}
}

五.什么是单例模式

看了个视频,视频里也没有讲清楚,暂时先放着以后再学吧 (:з」∠)


六.水管位置随机

我居然以为地图都是人工指定的,我可能是傻的。不过还是想不通,如果水管都是在坐标范围中随机出现的话,很有可能产生前后两个水管的位置差距太大而不可能飞过去的情况。感觉这种情况还需要再讨论一下?
背景倒是同一张图,每当它离开画面左边一定距离后就让它从右边回来:
【Unity】第一次使用Unity:Flappy Bird_第7张图片


七.试图鬼畜:让水管动起来!

总想搞点鬼畜的东西伤害玩家,于是想到了让水管动起来。使用的操作是给水管添加动画(animation)。
步骤是选择水管 → Window(Animation) → Create → Add Property → Anchored Position ,然后就跟添加关键帧一样了。感觉我这里的控制有点奇怪,数值总是莫名跳回去……似乎要先移好时间点,改好数值然后再添加关键帧。
这里写图片描述


八.好像,暂时没了

这个游戏里大概就学到了这些,暂时先这样吧 (๑•̀ㅂ•́)و✧

你可能感兴趣的:(游戏开发)