Unity 实用教程 之 背景音乐和音效的管理模板
1、打开Unity,新建一个空工程,具体如下图

2、在工程中,新建一个脚本“AudioManager”,用来统一管理音频文件,具体如下图

3、打开脚本进行编辑,首先设置脚本单例化,获取音频源,设置音频源属性,然后资源加载所有音频,接着用字典统一管理音频文件,实现播放背景音乐和播放音效的接口,具体的代码和代码说明如下图



4、“AudioManager”代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Audio manager.音乐音效的简单管理器
/// </summary>
[RequireComponent(typeof(AudioSource))]
public class AudioManager : MonoBehaviour {
//设置单例变量
private static AudioManager instance;
//设置单例属性
public static AudioManager Instance{
get{
return instance;
}
}
/// <summary>
/// 将声音放入字典中,方便管理
/// </summary>
private Dictionary<string, AudioClip> _soundDictionary;
//背景音乐和音效的音频源
private AudioSource [] audioSources;
private AudioSource bgAudioSource;
private AudioSource audioSourceEffect;
/// <summary>
/// Awake this instance.
/// </summary>
void Awake () {
//单例初始化
instance = this;
}
/// <summary>
/// Start this instance.
/// </summary>
void Start()
{
//加载资源存的所有音频资源
LoadAudio ();
//获取音频源
audioSources = this.GetComponents <AudioSource> ();
bgAudioSource = audioSources [0];
bgAudioSource.playOnAwake = true;
bgAudioSource.loop = true;
audioSourceEffect = audioSources [1];
audioSourceEffect.playOnAwake = false;
audioSourceEffect.loop = false;
}
/// <summary>
/// Loads the audio.
/// </summary>
private void LoadAudio(){
//初始化字典
_soundDictionary = new Dictionary<string, AudioClip> ();
//本地加载
AudioClip [] audioArray = Resources.LoadAll<AudioClip> ("Audio");
//存放到字典
foreach (AudioClip item in audioArray)
{
_soundDictionary.Add(item.name,item);
}
}
/// <summary>
/// Plaies the background audio.播放背景音乐
/// </summary>
/// <param name="audioName">Audio name.</param>
public void PlayBGAudio(string audioName)
{
if (_soundDictionary.ContainsKey(audioName))
{
bgAudioSource.clip=_soundDictionary[audioName];
bgAudioSource.Play();
}
}
/// <summary>
/// Plaies the audio effect.播放音效
/// </summary>
/// <param name="audioEffectName">Audio effect name.</param>
public void PlayAudioEffect(string audioEffectName)
{
if (_soundDictionary.ContainsKey(audioEffectName))
{
audioSourceEffect.clip=_soundDictionary[audioEffectName];
audioSourceEffect.Play();
}
}
}
5、脚本编译正确,回到Unity界面,根据代码加载路径,新建文件夹路径,导入音频文件,然后,再新建一个脚本,测试“AudioManager”,具体如下图

6、打开“Test”文件,根据音频文件名称,在Update函数中,使用“A”和“S”触发调用“AudioManager”的背景音乐和音效播放接口,具体代码和代码说明如下图

7、脚本编译正确,回到Unity界面,在场景中新建一个空物体“GameObject”,挂在上俩脚本,然后在添加两个音频源,具体如下图

8、运行场景,分别按下“A”和“S”键正常触发音乐音频播放,具体如下图

9、到此,《Unity 实用教程 之 背景音乐和音效的管理模板》讲解结束,谢谢