private void OnDestroy() { if (_instance == this) { _instance = null; _guiTexture = null; _onFadeComplete = null; _currentFade = null; ScreenResizeEvent.onScreenResize -= OnScreenResize; } }
static public void FadeFromColor(Color color, float duration = 1.5f, ScreenFaderCallback onComplete = null) { if (ScreenFader.instance != null) { if (_guiTexture != null) { _guiTexture.enabled = true; _guiTexture.color = color; _onFadeComplete = onComplete; if (_currentFade != null) { _currentFade.Kill(); } _currentFade = DOTween.To(() => _guiTexture.color, x => _guiTexture.color = x, Color.clear, duration). OnComplete(OnFadeFromComplete); } } }
static public void FadeFromBlack(float duration = 1.5f, ScreenFaderCallback onComplete = null) { FadeFromColor(Color.black, duration, onComplete); }
static public void FadeFromWhite(float duration = 1.5f, ScreenFaderCallback onComplete = null) { FadeFromColor(Color.white, duration, onComplete); }
static public void FadeToClear(float duration = 1.5f, ScreenFaderCallback onComplete = null, bool clearColor = false) { FadeFromColor(_guiTexture.color, duration, onComplete); }
static public void FadeToBlackHalfway(float duration = 1.5f, ScreenFaderCallback onComplete = null, bool clearColor = false) { FadeToBlackPartial(0.5f, duration, onComplete, clearColor); }
static public void FadeToBlackPartial(float percentFade, float duration = 1.5f, ScreenFaderCallback onComplete = null, bool clearColor = false) { FadeToColorPartial(Color.black, percentFade, duration, onComplete, clearColor); }
static public void FadeToBlack(float duration = 1.5f, ScreenFaderCallback onComplete = null, bool clearColor = false) { FadeToColor(Color.black, duration, onComplete, clearColor); }
static public void FadeToColorHalfway(Color color, float duration = 1.5f, ScreenFaderCallback onComplete = null, bool clearColor = false) { FadeToColorPartial(color, 0.5f, duration, onComplete, clearColor); }
static public void FadeToColorPartial(Color color, float percentFade, float duration = 1.5f, ScreenFaderCallback onComplete = null, bool clearColor = false) { Color partial = new Color(color.r, color.g, color.b, color.a * percentFade); FadeToColor(partial, duration, onComplete, clearColor); }