From d95020b910bc69ab733f87d5d0238fe2d1164590 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Sat, 16 Dec 2023 18:52:45 +0000 Subject: [PATCH] Overhauled audio management --- Assets/Scripts/SoundManager.cs | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Assets/Scripts/SoundManager.cs b/Assets/Scripts/SoundManager.cs index 84a6a6a..0ecdc0d 100644 --- a/Assets/Scripts/SoundManager.cs +++ b/Assets/Scripts/SoundManager.cs @@ -10,7 +10,7 @@ [System.Serializable] public class Sound { - public string name; + public SoundName name; public AudioClip clip; public AudioMixerGroupEnum mixerGroup; @@ -88,11 +88,14 @@ sounds[i].SetSource(_go.AddComponent<AudioSource>(), audioMixer); } DontDestroyOnLoad(this); - PlaySound("MusicHappy"); + PlaySound(SoundName.MusicHappy); } - public void PlaySound(string _name) + public void PlaySound(SoundName _name) { + if (_name == SoundName.None) + return; + for (int i = 0; i < sounds.Length; i++) { if (sounds[i].name == _name) @@ -106,8 +109,11 @@ Debug.LogWarning("SoundManager: Sounds not found in list: " + _name); } - public void PlaySoundAtPoint(GameObject gObject, string _name) + public void PlaySoundAtPoint(GameObject gObject, SoundName _name) { + if (_name == SoundName.None) + return; + gObject.AddComponent<AudioSource>(); for (int i = 0; i < sounds.Length; i++) { @@ -128,8 +134,6 @@ private static AudioSource PlayClipAtPointCustom(AudioSource audioSource, Vector3 pos, Sound sound) { - audioSource.volume = sound.volume * (1 + Random.Range(-sound.randomVolume / 2f, sound.randomVolume / 2f)); - audioSource.pitch = sound.pitch * (1 + Random.Range(-sound.randomPitch / 2f, sound.randomPitch / 2f)); GameObject tempGO = new GameObject("TempAudio"); // create the temp object tempGO.transform.position = pos; // set its position AudioSource tempASource = tempGO.AddComponent<AudioSource>(); // add an audio source @@ -142,8 +146,8 @@ tempASource.playOnAwake = audioSource.playOnAwake; tempASource.loop = audioSource.loop; tempASource.priority = audioSource.priority; - tempASource.volume = audioSource.volume; - tempASource.pitch = audioSource.pitch; + tempASource.volume = audioSource.volume * (1 + Random.Range(-sound.randomVolume / 2f, sound.randomVolume / 2f)); + tempASource.pitch = audioSource.pitch * (1 + Random.Range(-sound.randomPitch / 2f, sound.randomPitch / 2f)); tempASource.panStereo = audioSource.panStereo; tempASource.spatialBlend = audioSource.spatialBlend; tempASource.reverbZoneMix = audioSource.reverbZoneMix; @@ -175,7 +179,7 @@ audioMixer.SetFloat("sfxVol", 20f * Mathf.Log10(_volume)); } - public void ChangeMusic(string _name) + public void ChangeMusic(SoundName _name) { for (int i = 0; i < sounds.Length; i++) { -- Gitblit v1.9.3