using System.Collections.Generic; using UnityEngine; /// /// 音频管理 /// public class AudioManager : Singleton { private Dictionary AudioPlayers = new Dictionary(); // 创建AudioPlayer private AudioPlayer InstantiateAudioPlayerWithName(string name) { GameObject audioPlayer = new GameObject(name); audioPlayer.transform.SetParent(transform); AudioPlayers.Add(name, audioPlayer.AddComponent()); return AudioPlayers[name]; } /// /// 获取名字为name的AudioPlayer /// /// AudioPlayer的名字 /// 名字为name的AudioPlayer public AudioPlayer GetAudioPlayer(string name) { if (AudioPlayers.ContainsKey(name)) { return AudioPlayers[name]; } else { return InstantiateAudioPlayerWithName(name); } } /// /// 停止播放名字为name的AudioPlayer /// /// AudioPlayer的名字 public void Stop(string name) { if (AudioPlayers.ContainsKey(name)) { AudioPlayers[name].Stop(); } } public void StopAllWithout(string name) { foreach (var item in AudioPlayers) { if (item.Key != name) { item.Value.Stop(); } } } }