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();
            }
        }
Пример #2
0
 public static void Fade(float speed, OnFaded callback = null)
 {
     fadeSpeed    = speed;
     fadeCallback = callback;
 }
Пример #3
0
 public void Fade(bool pauses, float speed, OnFaded callback = null)
 {
     this.fadeSpeed         = speed;
     this.doesFadePauseGame = pauses;
     this.fadeCallback      = callback;
 }