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方面的事情,基本这个东西就算讲完了,之后如果还有什么需要补充的也会单开文章的。

  • 相关阅读:
    【JS】限制两个或多个单选框最多只能选择一个
    Markdown基本语法
    【thinkphp5】 分页样式修改
    Vscode 修改为中文语言
    【linux】Crontab 定时任务 使用实例
    【微信开发】 模板消息发送
    二维数组转化为字符串,中间用,隔开
    【golang】 go语言之环境搭建+ 第一个go语言程序
    【PHPstudy】安装Composer
    【LNMP】基于阿里云的https免费证书配置
  • 原文地址:https://www.cnblogs.com/nmsuper86/p/5619826.html
Copyright © 2011-2022 走看看