diff options
Diffstat (limited to 'Assets/Scripts/AudioManager.cs')
-rw-r--r-- | Assets/Scripts/AudioManager.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Assets/Scripts/AudioManager.cs b/Assets/Scripts/AudioManager.cs new file mode 100644 index 0000000..ccb8ebc --- /dev/null +++ b/Assets/Scripts/AudioManager.cs @@ -0,0 +1,48 @@ +using System; +using UnityEngine; +using UnityEngine.Audio; + +public class AudioManager : MonoBehaviour +{ + public Sound[] sounds; + + private void Awake() + { + foreach (Sound s in sounds) { + s.source = gameObject.AddComponent<AudioSource>(); + s.source.clip = s.clip; + s.source.volume = s.volume; + s.source.pitch = s.pitch; + s.source.loop = s.loop; + } + } + + private void Start() + { + Play("BackgroundMusic"); + } + + public void Play(string name) + { + Sound s = Array.Find(sounds, sound => sound.name == name); + if (s == null) { + Debug.LogWarning("Sound Error: " + name + " could not be played"); + return; + } + s.source.Play(); + } + + public void Stop(string name) + { + Sound s = Array.Find(sounds, sound => sound.name == name); + if (s == null) return; + s.source.Stop(); + } + + public bool isPlaying(string name) + { + Sound s = Array.Find(sounds, sound => sound.name == name); + if (s == null) return false; + return s.source.isPlaying; + } +} |