/// <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(); }
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; } }