private IEnumerator DoStop(FadeProperties settings) { // Wait for the audio to finish fading, then stop the audio yield return(DoFade(settings)); settings.source.Stop(); }
void OnLevelWasLoaded(int level) { RefreshCamOverlay(); if (fadeOutAfterLevelChange) { fadeOutAfterLevelChange = false; FadeOut(fadeProperties.delay, fadeProperties.increment); fadeProperties = null; } switch (level) { case 1: FadeManager.Instance.FadeOut(1f, 1f); break; } }
private IEnumerator DoFade(FadeProperties settings) { yield return(0); float startTime = Time.time; float startVolume = settings.source.volume; float fadePosition = 0; while (Time.time < startTime + settings.length) { fadePosition += Time.deltaTime; settings.source.volume = Mathf.SmoothStep(startVolume, settings.targetVolume * masterVolume * SilenceMultiplier, fadePosition / settings.length); yield return(0); } // Stop playback if the audio has faded completely out if (settings.targetVolume <= 0) { settings.source.Stop(); } }
public void FadeOutAfterChangingLevel(float delay, float inc) { fadeOutAfterLevelChange = true; fadeProperties = new FadeProperties(FadeProperties.FadeType.FadeOut, delay, increment); }