protected override void Update() { // Handle audio fade if (curFadeScale < 1f) { // Increase scale curFadeScale = Math.Max(1f, curFadeScale + Time.unscaledDeltaTime); // Fade volume source.volume = volume * Mathf.Lerp(fadeScaleFrom, fadeScaleTo, curFadeScale); // Fade finish if (curFadeScale >= 1f) { OnFaded?.Invoke(fadeScaleTo); } } // Update audio clock clock.Update(Time.unscaledDeltaTime); // Process audio end and loop only when running and is playing. if (Clock.IsRunning && Clock.IsPlaying && Clock.CurrentTime > Audio.Duration) { base.Update(); } }
public static void Fade(float speed, OnFaded callback = null) { fadeSpeed = speed; fadeCallback = callback; }
public void Fade(bool pauses, float speed, OnFaded callback = null) { this.fadeSpeed = speed; this.doesFadePauseGame = pauses; this.fadeCallback = callback; }