void Update() { if (State == UICanvasGroupFader.FaderState.FadingIn) { _transition += Time.deltaTime / TransitionTime; if (_transition > 1) { _transition = 1; State = UICanvasGroupFader.FaderState.FadedIn; StateChanged?.Invoke(UICanvasGroupFader.FaderState.FadedIn); } Image.color = Color.LerpUnclamped(_start, _end, AnimationCurve.Evaluate(_transition)); } if (State == UICanvasGroupFader.FaderState.FadingOut) { _transition += Time.deltaTime / TransitionTime; if (_transition > 1) { _transition = 1; State = UICanvasGroupFader.FaderState.FadedOut; StateChanged?.Invoke(UICanvasGroupFader.FaderState.FadedOut); } Image.color = Color.LerpUnclamped(_start, _end, 1 - AnimationCurve.Evaluate(1 - _transition)); } }
public void FadeInFromScreenUv(float x, float y) { _start = new Color(x, y, 0); _end = new Color(x, y, 1f); _transition = 0; State = UICanvasGroupFader.FaderState.FadingIn; StateChanged?.Invoke(UICanvasGroupFader.FaderState.FadingIn); }
private void FadeOutFromScreenUv(float x, float y) { _start = new Color(x, y, 1f); _end = new Color(x, y, 0f); _transition = 0; State = UICanvasGroupFader.FaderState.FadingOut; StateChanged?.Invoke(UICanvasGroupFader.FaderState.FadingOut); }
private void Awake() { State = Initial; }