在实战项目中,音乐音效的好坏肯定是一个玩家对此项目评定的一个因素之一。所以,有必要对音乐音效做出一个统一的管理。

 首先,我把几个音效放到了Resouces的Audios文件夹下,方便动态加载。


之后,利用一个非常简单的单例,建了一个空物体当做管理音乐的gameObject,将音乐音效统一管理起来,代码如下:

public class SoundManager:MonoBehaviour
{//------------------------------///// <summary>/// 单例模式/// </summary>public static readonly SoundManager instance=new SoundManager ();private SoundManager (){}//------------------------------///// <summary>/// 将声音放入字典中,方便管理/// </summary>private Dictionary<string, AudioClip> _soundDictionary;private AudioSource [] audioSources;private AudioSource bgAudioSource;private AudioSource audioSourceEffect;void Awake(){instance = this;_soundDictionary = new Dictionary<string, AudioClip> ();//本地加载 AudioClip [] audioArray = Resources.LoadAll<AudioClip> ("AudioCilp");audioSources = GetComponents<AudioSource> ();bgAudioSource = audioSources [0];audioSourceEffect = audioSources [1];//存放到字典foreach (AudioClip item in audioArray) {_soundDictionary.Add(item.name,item);}}//播放背景音乐public void PlayBGaudio(string audioName){if (_soundDictionary.ContainsKey(audioName)) {bgAudioSource.clip=_soundDictionary[audioName];bgAudioSource.Play();}}//播放音效public void PlayAudioEffect(string audioEffectName){if (_soundDictionary.ContainsKey(audioEffectName)) {audioSourceEffect.clip=_soundDictionary[audioEffectName];audioSourceEffect.Play();   }}
}

音效是一直在场景中不消失的,所以要保证切换场景的时候资源不会删除。

    //=============================================//static bool isHaveAudio=false ;public GameObject tempGameObject;//=============================================////不销毁音效void Start(){if (!isHaveAudio) {tempGameObject=Instantiate(Resources.Load("SoundManage"))as GameObject;isHaveAudio=true ;}DontDestroyOnLoad (tempGameObject);}

使用:先执行加载预设(Start())脚本。
SoundManage是个预设,预设绑定SoundManager.cs脚本。

关于Unity音乐音效管理相关推荐

  1. 关于 Unity 音乐音效管理

    本文转载自:http://blog.csdn.net/microsoftMSDNNET/article/details/47273239 在实战项目中,音乐音效的好坏肯定是一个玩家对此项目评定的一个因 ...

  2. Unity 音乐播放管理器

    MonoSingleton using UnityEngine; public class MonoSingleton<T> : MonoBehaviour where T : MonoB ...

  3. Cocos Creator 音乐音效管理

    废话不多说,直接上代码,这个方法有将音效缓存,用空间换时间,暂时测试没有问题,水平有限,暂时只能写成这个样子,有问题大家欢迎提出指正,一起学习进步,希望可以帮到有需要的人! export {Audio ...

  4. Unity 按钮音效管理【悬浮和按下】

    删除按钮上的Buton组件,在按钮上挂载以下两个脚本 using UnityEngine.EventSystems; using UnityEngine.UI;namespace MT_Button ...

  5. U3D客户端框架之 音效管理器 与 Fmod介绍安装导入Unity

    一.Fmod介绍与安装导入Unity 1.Fmod与Unity内置Audio播放器对比 Unity内置的Audio底层使用的是FMOD,但是功能不够齐全,高级一点的功能如混合(Mix)等无法使用: 音 ...

  6. Unity程序基础框架__音效管理模块

    音效管理模块 作用:统一管理音乐音效相关 以前处理音效播放的时候就是哪儿需要播放音效就在哪儿去添加相关的代码段,弄得项目代码不简洁,也很冗杂,为了解决这个问题,整理了一个音效管理的模块,我们在哪儿需要 ...

  7. unity音效管理器

    unity游戏制作时,经常需要播放音效,如果没有一个音效管理类,随时随地都可以播放音乐,不利于代码的管理.我们可以将所有关于音效集中到一个管理类当中,可以将这个音效管理器写成单例,也可以将它当作一个模 ...

  8. Unity 项目中的音效管理器

    using UnityEngine; using System.Collections; using System.Collections.Generic;/// <summary> // ...

  9. Unity 工具类 之 编辑扩展器 之 简单的音效管理编辑扩展器面板实现

    Unity 工具类 之 编辑扩展器 之 简单的音效管理编辑扩展器面板实现 目录 Unity 工具类 之 编辑扩展器 之 简单的音效管理编辑扩展器面板实现 一.简单介绍 二.实现原理 三.注意事项 四. ...

最新文章

  1. [推荐]C#快速开发3d游戏工具--Unity3d
  2. 我是LinkedIn的SRE,我把LinkedIn搞挂了
  3. 互联网协议 — TLS — CA 认证
  4. 设置代理_ie浏览器一键取消自动检测设置并设置代理
  5. iphone屏幕录制_无需第三方APP,苹果iPhone手机屏幕录制的方法
  6. dw网页设计期末设计一个网页_Dreamweaver网页设计期末模拟试题(1)
  7. 【转】android多分辨率适配
  8. jsp中头的导入两种方式区别
  9. 2019智能手表推荐_戴过 100 块智能手表后,2019年我觉得这4款智能手表最值得买!...
  10. mysql小黑屏怎么用,兰蔻小黑瓶怎么用?多种使用方法教给大家
  11. Elasticsearch版本客户端与服务端版本不一致问题
  12. html5交互设计,国外五个交互设计很棒的酷站推荐,酷毙了
  13. ESP8266+blinker测温湿度
  14. oracle列转行用法,oracle 行转列 列转行
  15. 如何在网上轻松赚钱,三个非常靠谱的副业项目,一定要收藏起来看
  16. 科学计算机怎么调颜色,Win7旗舰版如何进行屏幕颜色校准
  17. php 带http的域名,php提取URL中的域名部分
  18. kruskal算法实现 —c++ 最小k生成森林问题 cs精英挑战营 柿子问题
  19. Python scrapy爬虫爬取伯乐在线全部文章,并写入数据库
  20. NYOJ 998 解题报告

热门文章

  1. c执行cmd pdf2swf_pdf2swf 和pdf2html 使用命令详解
  2. Kindle电子阅读器收不到个人文档推送解决方案
  3. 爱快软路由对笔记本实现网络唤醒
  4. Java笔试面试-克隆和序列化
  5. js实现对数据进行筛选
  6. CSS 添加上标(用CSS伪类解决js无法赋值实现诸如单位平方的2上标)
  7. k8s负载均衡器之PureLB
  8. 基于STM32的定时定量智能宠物投食器原理图PCB
  9. 直线方程的点斜式、两点式、斜截式的公式是什么
  10. 【SIKI学院】愤怒的小鸟创建过程-1