zoukankan      html  css  js  c++  java
  • Unity5 官方教程笔记(2D Rogue Like)06 —— SoundManager和Loader

    作为辅助单位,SoundManager和Loader在游戏中也起到了很重要的作用。由于这两样东西本身比较简单,因此在这一篇文章中将一起讲解。

    先说SoundManager:

     

    SoundManager和GameManager一样,在同一时间只需要一个,因此也要设定为单例模式。因此在Awake方法中和GameManager基本一样。

     

    可以注意到,在Unity中,想要播放声音并不完全是简单的选定一个声音片段之后再播放就可以了,而是要把一段声音绑定到一个“AudioSource”上。

     

    AudioSource可以理解为是一个“DJ”,这个DJ可以为声音添加效果、可以决定什么时候播放一段声音。同时对于一些3d游戏来讲,这个DJ所在的位置和你所在的位置之间的关系,以及你的场景布置将会影响到你所听到的声音(当然我们这个上帝视角的游戏一般情况下很少会用到这个效果)

    值得注意的是这里面的RandomizeSfx方法:

     

    这里面除了随机从几个音效中选择一个播放之外,还加上了pitch效果,在这里面就是为声音加上一点点音高的变化,让声音显得随机性更强一些。

    再来说一说Loader:

     

    这个类非常非常简单,目前来讲唯一的目的就是把GameManager给实例化。“为什么类似的SoundManager就不需要在代码里进行实例化呢?”“因为在Hierarchy视图里面已经有一个我们拖进去的SoundManager了呀小鬼!”

    其实这里面除了实例化GameManager以外还可以做一些别的事情,不过在本例中由于没有太多需要做的工作,所以这里就先只做这一件事。

    另外还有一点,如果一段脚本想要运行,必要的一件事就是要依附于一个GameObject,那么在这里我们就选择了MainCamera作为这个依附的对象。主要的原因我个人觉得可能是因为这个对象不会轻易被销毁,而且对于我们创建的其他对象基本没有依赖,独立性比较高,所以适合于做这种引导性的工作。

    嗯,整个讲的差不多了,接下来的最后一篇我们再说说UI方面的事情,基本这个东西就算讲完了,之后如果还有什么需要补充的也会单开文章的。

  • 相关阅读:
    Win7 SP1 安装SQL Server 2012时提示“此计算机上的操作系统不符合 SQL Server 2012的最低要求”
    ajax jsonp跨域
    Caused by: Unable to locate parent package [json-package] for [class com.you.action.ColumnAction]
    PHP MVC自己主动RBAC自己主动生成的访问路由
    Service与Activity与交流AIDL
    SVN常见错误两项纪录
    EL表达式语言
    oracle11g ASM(修复损坏的磁盘组头asm修复2)
    如何使用iOS 8 指纹识别,代码、示例
    EXCEL Pivot table manipulate
  • 原文地址:https://www.cnblogs.com/nmsuper86/p/5619826.html
Copyright © 2011-2022 走看看