///////////////////////////////////////////////////////////////// public void VolumeLevels_UpdateAll(float audioTypeSettingsVolume, bool isMuted) { //Loop All Current Music Tracks foreach (Transform child in audioTrack_Container.transform) { //Get Music Tab RARC_AudioTab audioTab = child.gameObject.GetComponent <RARC_AudioTab>(); //Check If Music if (audioTab.isMusic) { //Set Volume if (isMuted) { //Mute audioTab.audioSource.volume = 0; } else { //Update Volume By Creating a non-linear exponental increae for the voule as audio drop on a logarithmic Rate (Not using the ideal soultion but a close match) //float logarithmicFalloffAudio = Mathf.Pow((audioTypeSettingsVolume / 100), 2); //audioTab.audioSource.volume = (audioTab.currentAudio_SO.volume * logarithmicFalloffAudio); audioTab.audioSource.volume = (audioTab.currentAudio_SO.volume * audioTypeSettingsVolume); } } } }
///////////////////////////////////////////////////////////////// public void StopTrackMusic_Single(GameObject audioTrack) { //Get Tab RARC_AudioTab audioTab = audioTrack.gameObject.GetComponent <RARC_AudioTab>(); //Fade Out Or Destory if (audioTab.currentAudio_SO.canFadeOut) { StartCoroutine(audioTab.IAudioVolumeDampeningOnDestory(audioTab.currentAudio_SO.fadeOutSpeed)); } else { audioTab.DestoryAudio_Instant(); } }
public void StopTrackMusic_All() { //Loop all Tabs foreach (Transform child in audioTrack_Container.transform) { //Get Tab RARC_AudioTab audioTab = child.gameObject.GetComponent <RARC_AudioTab>(); //Fade Out Or Destory if (audioTab.currentAudio_SO.canFadeOut) { StartCoroutine(audioTab.IAudioVolumeDampeningOnDestory(audioTab.currentAudio_SO.fadeOutSpeed)); } else { audioTab.DestoryAudio_Instant(); } } }