using UnityEngine.Audio; using System; using UnityEngine; public class AudioManager : MonoBehaviour{ public AudioMixerGroup mixerGroup; public Sound[] sounds; public static AudioManager instance; // Start is called before the first frame update void Awake(){ if (instance == null) instance = this; else{ Destroy(gameObject); return; } DontDestroyOnLoad(gameObject); foreach (Sound s in sounds){ s.source = gameObject.AddComponent(); s.source.clip = s.clip; s.source.volume = s.volume; s.source.pitch = s.pitch; s.source.loop = s.loop; s.source.outputAudioMixerGroup = mixerGroup; } } public void Play(string name){ Sound s = Array.Find(sounds, sound => sound.name == name); if (s == null){ Debug.LogError("Sound: " + name + " not found!"); return; } s.source.Play(); } public void Stop(string name){ Sound s = Array.Find(sounds, sound => sound.name == name); if (s == null){ Debug.LogError("Sound: " + name + " not found!"); return; } s.source.Stop(); } }