public async Task PlayAsync(float fadeInTime) { if (!IsValid) { return; } CompleteAllRunners(); if (!IsPlaying) { Play(); } var tween = new FloatTween(0, Volume, fadeInTime, volume => Volume = volume); await volumeTweener.RunAsync(tween); }
public virtual async Task SetIsVisibleAsync(bool isVisible, float?fadeTime = null) { if (fadeTweener.IsRunning) { fadeTweener.Stop(); } this.isVisible = isVisible; OnVisibilityChanged.SafeInvoke(isVisible); if (!CanvasGroup) { return; } CanvasGroup.interactable = isVisible; CanvasGroup.blocksRaycasts = isVisible; var fadeDuration = fadeTime ?? FadeTime; var targetOpacity = isVisible ? 1f : 0f; if (fadeDuration == 0f) { CanvasGroup.alpha = targetOpacity; return; } var tween = new FloatTween(CanvasGroup.alpha, targetOpacity, fadeDuration, alpha => CanvasGroup.alpha = alpha); await fadeTweener.RunAsync(tween); }