示例#1
0
    /// <summary>Use StartCoroutine() on this one.</summary>
    public IEnumerator FadeIn(float fadeSeconds)
    {
        float startVolume = source.volume;

        while (source.volume < initialVolume)
        {
            source.volume += (initialVolume - startVolume) * (Time.unscaledDeltaTime / fadeSeconds);
            yield return(null);
        }

        source.volume = initialVolume;
        OnFadedIn?.Invoke();
    }
示例#2
0
 public void Update(GameTime gameTime)
 {
     if (fading)
     {
         if (fadeIn)
         {
             fadeValue += fadeSpeed;
             if (fadeValue >= 255)
             {
                 if (loop)
                 {
                     fadeIn = false;
                 }
                 else
                 {
                     fading = false;
                 }
                 fadeValue = 255;
                 OnFadedIn?.Invoke(this, null);
             }
         }
         else
         {
             fadeValue -= fadeSpeed;
             if (fadeValue <= 0)
             {
                 if (loop)
                 {
                     fadeIn = true;
                 }
                 else
                 {
                     fading = false;
                 }
                 fadeValue = 0;
                 OnFadedOut?.Invoke(this, null);
             }
         }
         byte b = (byte)fadeValue;
         tr.color.R = b;
         tr.color.G = b;
         tr.color.B = b;
         tr.color.A = b;
     }
 }