private static IEnumerator SlideToRoutine(SlideUITransition uITransition) { float currentTime = 0f; Vector3 startPosition = uITransition.RectTransform.localPosition; if (uITransition.withDisableTouch) { EventSystem.SetActive(false); } while (currentTime < 1f) { uITransition.RectTransform.localPosition = Vector3.Lerp(startPosition, uITransition.EndPosition, uITransition.Curve.Evaluate(currentTime)); currentTime += Time.deltaTime / uITransition.TransitionTime; yield return(null); } uITransition.RectTransform.localPosition = uITransition.EndPosition; if (uITransition.withDisableTouch) { EventSystem.SetActive(true); } uITransition.OnDone?.Invoke(); }
public static void SlideTo(SlideUITransition uITransition) => Instance.StartCoroutine(SlideToRoutine(uITransition));