音频管理控制器

 1 public class AudioManager : MonoBehaviour
 2 {
 3 
 4         private Dictionary<string, AudioSource> _audioPool = new Dictionary<string, AudioSource>();
 5 
 6 
 7         private static AudioManager _mInstance = null;       
 8 
 9 
10         public static AudioManager Instance
11         {
12             get
13             {
14                 if (_mInstance == null)
15                 {
16                     GameObject obj = new GameObject("AudioManager");
17                     _mInstance = obj.AddComponent<AudioManager>();
18                 }
19                 return _mInstance;
20             }
21         }
22 
23     //设置音频存储key,实际音频名称(路径)
24         public void AudioSet(string keyName, string path)
25         {
26 
27             if (!_audioPool.ContainsKey(keyName))
28             {
29             
30 
31                 AudioClip clip = Resources.Load("Audio/" + path) as AudioClip;
32                 AudioSource source = gameObject.AddComponent<AudioSource>();
33 
34                 source.clip = clip;
35                 _audioPool.Add(keyName, source);
36             }
37             else
38             {
39                 // TODO: 测试
40                 print(keyName + "已存在");
41             }
42         }
43 
44         /// <summary>
45         /// 播放处理
46         /// </summary>
47         /// <param name="audioKey">音频Key</param>
48         /// <param name="isLoop">是否循环播放:true:循环/false:不循环</param>
49         /// <param name="isAwake">是否一开始就自动播放:true:是/false:否</param>
50         public void Play(string audioKey, bool isLoop = false, bool isAwake = false)
51         {
52             AudioSource source = _audioPool[audioKey];
53 
54             source.loop = isLoop;
55             source.playOnAwake = isAwake;
56 
57             source.Play();
58         }
59 
60         /// <summary>
61         /// 停止处理
62         /// </summary>
63         public void Stop(string key)
64         {
65             _audioPool[key].Stop();
66         }
67 
68 
69 
70     //-----------------------常用音效
71     //录像音效
72     public void ClickBtnSoundEffect()
73     {
74         AudioSet ("ClickBtn", "click_Btn");
75         Play ("ClickBtn");
76         
77     }
78 
79     //拍照音效
80     public void ClickTakePhotoBtnSoundEffect()
81     {
82         AudioSet ("takePhotoSound", "camera-shutter");
83         Play ("takePhotoSound",false,false);
84 
85     }
86 
87 }
原文地址:https://www.cnblogs.com/zjw007/p/6640509.html