//not for use private IEnumerator IFadeOut(EnumAudioId audioId, float duration) { AudioFile s = Array.Find(instance.audioFiles, AudioFile => AudioFile.audioID == audioId); if (s == null) { Debug.LogError("Sound name" + name + "not found!"); yield return(null); } else { if (fadeOut == false) { fadeOut = true; float startVol = s.source.volume; fadeOutUsedString = name; while (s.source.volume > 0) { s.source.volume -= startVol * Time.deltaTime / duration; yield return(null); } s.source.Stop(); yield return(new WaitForSeconds(duration)); fadeOut = false; } else { Debug.Log("Could not handle two fade outs at once : " + name + " , " + fadeOutUsedString + "! Stopped the music " + name); StopMusic(audioId); } } }
public IEnumerator IFadeIn(EnumAudioId audioId, float targetVolume, float duration) { AudioFile s = Array.Find(instance.audioFiles, AudioFile => AudioFile.audioID == audioId); if (s == null) { Debug.LogError("Sound name" + name + "not found!"); yield return(null); } else { if (fadeIn == false) { fadeIn = true; instance.fadeInUsedString = name; s.source.volume = 0f; s.source.Play(); while (s.source.volume < targetVolume) { s.source.volume += Time.deltaTime / duration; yield return(null); } yield return(new WaitForSeconds(duration)); fadeIn = false; } else { Debug.Log("Could not handle two fade ins at once: " + name + " , " + fadeInUsedString + "! Played the music " + name); StopMusic(audioId); PlayMusic(audioId); } } }
public static void FadeIn(EnumAudioId audioId, float targetVolume, float duration) { if (playMusic) { instance.StartCoroutine(instance.IFadeIn(audioId, targetVolume, duration)); } }
public static void UnPauseMusic(EnumAudioId audioId) { AudioFile s = Array.Find(instance.audioFiles, AudioFile => AudioFile.audioID == audioId); if (s == null) { Debug.LogError("Sound name" + audioId + "not found!"); return; } else { s.source.UnPause(); } }
public static void PlayMusic(EnumAudioId audioId) { AudioFile s = Array.Find(instance.audioFiles, AudioFile => AudioFile.audioID == audioId); if (s == null) { Debug.LogError("Sound name" + audioId + "not found!"); return; } else { if (s.source.isPlaying) { Debug.LogWarning($"Requested Audio File {audioId} is already Playing"); } else { s.source.Play(); } } }
public static void LowerVolume(EnumAudioId audioId, float _duration) { if (instance.isLowered == false) { AudioFile s = Array.Find(instance.audioFiles, AudioFile => AudioFile.audioID == audioId); if (s == null) { Debug.LogError("Sound name" + audioId + "not found!"); return; } else { instance.tmpName = audioId; instance.tmpVol = s.volume; instance.timeToReset = Time.time + _duration; instance.timerIsSet = true; s.source.volume = s.source.volume / 3; } instance.isLowered = true; } }
public static void FadeOut(EnumAudioId audioId, float duration) { instance.StartCoroutine(instance.IFadeOut(audioId, duration)); }