因为我有一个超屌的梦想,所以就绝不会做一个孬种的追梦人!

  • 完成音效的添加
  • 单例模式
  • 游戏的状态切换

1. 单例模式

首先呢,说一下单例模式。何为单例?单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。显然单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。

创建一个单例模式的步骤:私有化构造函数;私有化实例;公共方法调用。

public static GameMaanager _intance;

  

void Awake()
{
_intance = this; }

 2. 完成音效的添加

音效组件只有添加到正确的对象上才能发挥作用。首先导入音乐素材,在相对应的位置上添加AudioSource组件。

-die 用于判定小鸟死亡,需要加载到小鸟身上;-hit 用于小鸟与管道撞击产生的声音;-point 是小鸟通过管道获得分数的声音;-wing 是小鸟挥动翅膀的声音;- swooshing 是小鸟出现的声音。根据音效的不同,把声音加载到不同的对象Audio Source组件上。(Audio Source组件的相关内容可以在unity圣典中查阅)然后在相应的代码区间添加控制声音播放的代码。

 GetComponent<AudioSource>().Play();

 3. 游戏的状态切换

游戏的状态一共三种:游戏菜单状态、 游戏中的状态、游戏结束状态。我们可以定义 三种状态的静态变量,然后通过条件限制实现不同状态的切换。

public static int GAMESTATE_MENU = 0;//游戏菜单状态
public static int GAMESTATE_PLAYING = 1;//游戏中状态 ...
public static int GAMESTATE_END = 2;//游戏结束状态

  

if (GameMaanager._intance.GameState ==GameMaanager.GAMESTATE_PLAYING)
{ if (Input.GetKeyDown(KeyCode.Space))
{
GetComponent<AudioSource>().Play();
Vector3 vel = this.GetComponent<Rigidbody>().velocity;
this.GetComponent<Rigidbody>().velocity = new Vector3(vel.x, 5, vel.z);
} if (Input.GetMouseButton(0))
{
GetComponent<AudioSource>().Play();
Vector3 vel = this.GetComponent<Rigidbody>().velocity;
this.GetComponent<Rigidbody>().velocity = new Vector3(vel.x, 5, vel.z);
} }

  到这里算是音效代码已经全部实现,还有相关GUI组件没有实现,且听下回分解。(在文中有些功能组件的实现没有详细解释,我会通过专门的文章进行讲解。如果没有给你带来帮助,我只能说抱歉。若果能帮到你,我会很开心。)

Flapper Bird的学习笔记(三)的更多相关文章

  1. Flapper Bird的学习笔记(一)

    因为我有一个超屌的梦想,所以就绝不做孬种的追梦人! 本文主要目的是为了实现Flapper Bird的功能. 另外一个目的是为了加强对Unity引擎的理解和掌握. 新人一枚,如若看到是我幸运.若是发现错 ...

  2. Flapper Bird的学习笔记(二)

    因为有一个超屌的梦想,所以就绝不会做一个孬种的追梦人! 本章节主要目的: 实现小鸟的飞行. 实现管道的随机出现. 实现相机跟随. 上次主要是场景的布置,这节全力拿下代码. 1.小鸟飞行(一种制作2D动 ...

  3. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  4. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  5. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  6. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  7. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  8. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  9. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

随机推荐

  1. mariadb:InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes

    mariadb 启动中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 起因:线上正在运行的系统,因为需要调整性能,变更了my ...

  2. Tomcat崩溃

    参考: http://bbs.csdn.net/topics/390391810?page=1 自己遇到的: --------------------------------------------- ...

  3. Win10 Hyper-V 配置

    Win10 Hyper-V 配置 安装 Hyper 程序和功能 -> 启用和关闭windows -> Hyper-V Hyper-V 虚拟网类型 外部网络 [外网/物理机/虚拟机] 内部网 ...

  4. 前端利器---Bootstrap

    看着那么多大神在博客上都有自己的心得和分享,我虽然工作不久,但也想做一下自己的笔记起码对自己是一次积累和锻炼的过程.所以心血来潮今天就注册了博客. 我今天想说一下Bootstrap,学前台的大概对Bo ...

  5. JavaScript的chapterI

    JavaScript是一种由web浏览器进行解析和执行脚本语言,包括ECMAScript,DOM,BOM. JavaScript的最大作用是赋予页面动作,让页面动起来,已经动态的处理页面的数据. 应用 ...

  6. python学习之深入

    一.迭代器和生成器 1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. ...

  7. 点击表格tr同时点击checkbox

    项目里偶然要用到这个功能,写到了就记一下吧.

  8. <转>好婚姻是彼此放心

    -01- 临下班,马丽听到隔壁桌的方雅在打电话,声音听起来嗲声嗲气:“有个朋友晚上约我吃饭,要晚点回来,你不用等我了哦.” 电话挂断时,已经到了下班的点.方雅扭头对马丽说:“丽姐,待会我们一起去吃个饭 ...

  9. JSON方式提交文档时SOLR报:AtomicUpdateDocumentMerger Unknown operation for the an atomic update, operation ignored

    文档是数组转成的json 原数组: array( 0 =>3, 1 =>3, 2 =>4, 3 =>5, 4 =>5, 5 =>6) 用array_unique去掉 ...

  10. VIM常用设置

    批量替换:  #:%s/source_pattern/target_pattern/g "My Custom Configuration filetype plugin indent on ...