public void FadeIn(FadeFinished fadeFinished = null, string fadeFinishedMsg = null) { #if UNITY_STANDALONE || UNITY_EDITOR if (fadeFinished != null) { fadeFinished(fadeFinishedMsg); } #else StartCoroutine(Fade(1, 0, fadeFinished, fadeFinishedMsg)); #endif }
void Awake() { OnFadeFinished += SetDefaultFadeOut; FadeOutPanel = gameObject.GetComponentInChildren <Image>(); SetDefaultFadeOut(); progress = 1; if (FadeInOnAwake) { StartFadeIn(fadeDuration); } }
/// <summary> /// 定时器事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void _timer_Tick(object sender, EventArgs e) { if (_direction == FadeDirection.FadeIn) { _opacity += _opacitystep; if (_opacity <= _endopacity) { _parentform.Opacity = _opacity / 100.0; } else { _opacity = _endopacity; _parentform.Opacity = _opacity / 100.0; _timer.Stop(); _timer.Enabled = false; if (FadeFinished != null) { FadeFinished.Invoke(this, new FadeFinishedEventArgs() { Direct = FadeDirection.FadeIn }); } } } else { _opacity -= _opacitystep; if (_opacity >= _startopacity) { _parentform.Opacity = _opacity / 100.0; } else { _opacity = 0; _parentform.Opacity = _opacity / 100.0; if (FadeFinished != null) { FadeFinished.Invoke(this, new FadeFinishedEventArgs() { Direct = FadeDirection.FadeOut }); } _parentform.Close(); } } }
/// <summary> /// Fades alpha from 1.0 to 0.0 /// </summary> IEnumerator Fade(float startAlpha, float endAlpha, FadeFinished fadeFinished = null, string fadeFinishedMsg = null) { float elapsedTime = 0.0f; while (elapsedTime < fadeTime) { elapsedTime += Time.deltaTime; currentAlpha = Mathf.Lerp(startAlpha, endAlpha, Mathf.Clamp01(elapsedTime / fadeTime)); SetMaterialAlpha(); yield return(new WaitForEndOfFrame()); } if (fadeFinished != null) { yield return(new WaitForEndOfFrame()); fadeFinished(fadeFinishedMsg); } }