private void StartNewMusic(CustomAudioClip customAudioClip, MusicFadeSettings fadeSettings) { var audioPlayer = AudioPlayerPool.Instance.GetNewAndEnable(); audioPlayer.Play(customAudioClip); _currentMusicPlayer = audioPlayer; audioPlayer.FadeInAsync(fadeSettings); }
public void FadeInAsync(MusicFadeSettings fadeSettingsOverride = null) { if (_customAudioClip == null) { Debug.LogWarning("Tried to fade in music but no music was playing"); return; } StartCoroutine(FadeInCoroutine()); }
public void PlayNewMusicAsync(CustomAudioClip newMusic, MusicFadeSettings overrideFadeSettings = null) { if (!newMusic.IsMusic) { Debug.LogError($"{newMusic.name} does not have IsMusic = true"); return; } StartCoroutine(PlayNewMusicCoroutine(newMusic, overrideFadeSettings)); }
private IEnumerator PlayNewMusicCoroutine(CustomAudioClip newMusic, MusicFadeSettings overrideFadeSettings = null) { var fadeSettings = overrideFadeSettings ?? _defaultMusicFadeSettings; if (_currentMusicPlayer != null) { StopCurrentMusic(fadeSettings); yield return(new WaitForSeconds(_defaultMusicFadeSettings.DelayBetweenSongsInSeconds)); } StartNewMusic(newMusic, fadeSettings); }
private IEnumerator FadeOutCoroutine(MusicFadeSettings fadeSettingsOverride = null) { _isFading = true; var fadeSettings = fadeSettingsOverride ?? _defaultFadeSettings; if (fadeSettings.FadeTimeInSeconds != 0) { var startingVolume = _audioSource.volume; while (_audioSource.volume > 0f) { yield return(new WaitForSeconds(fadeSettings.UpdateDelayInSeconds)); _audioSource.volume -= startingVolume * (fadeSettings.UpdateDelayInSeconds / fadeSettings.FadeTimeInSeconds); } } _audioSource.volume = 0f; _isMuted = true; _isFading = false; }
private IEnumerator FadeInCoroutine(MusicFadeSettings fadeSettingsOverride = null) { _isMuted = false; _isFading = true; var fadeSettings = fadeSettingsOverride ?? _defaultFadeSettings; var targetVolume = _customAudioClip.GetVolume() * AudioSettings.Instance.BaseVolume; if (fadeSettings.FadeTimeInSeconds != 0) { while (_audioSource.volume < targetVolume) { yield return(new WaitForSeconds(fadeSettings.UpdateDelayInSeconds)); _audioSource.volume += targetVolume * (fadeSettings.UpdateDelayInSeconds / fadeSettings.FadeTimeInSeconds); } } _audioSource.volume = targetVolume; _isFading = false; }
public void PlayNewMusicAsync(CustomAudioClip music, MusicFadeSettings overrideFadeSettings = null) { AudioPlayerSpawner.Instance.PlayNewMusicAsync(music, overrideFadeSettings); }
public void FadeOutAsync(MusicFadeSettings fadeSettingsOverride = null) { StartCoroutine(FadeOutCoroutine(fadeSettingsOverride)); }
private void StopCurrentMusic(MusicFadeSettings fadeSettings) { _currentMusicPlayer.FadeOutAsync(fadeSettings); AudioPlayerPool.Instance.ReturnAndDisable(_currentMusicPlayer); _currentMusicPlayer = null; }