protected override IEnumerator TutorialAnimation() { var wait = new WaitForSeconds(0.5f); while (true) { fingerRectTransform.anchoredPosition = startPoint.RectTransform.anchoredPosition; ChangeImage(FingerType.Up); fingerRectTransform.gameObject.SetActive(true); yield return(wait); ChangeImage(FingerType.Down); yield return(wait); var start = startPoint.RectTransform.anchoredPosition; var end = endPoint.RectTransform.anchoredPosition; var duration = KKUtilities.GetDuration(start, end, speed); yield return(KKUtilities.FloatLerp(duration, (t) => { end = endPoint.RectTransform.anchoredPosition; fingerRectTransform.anchoredPosition = Vector3.Lerp(start, end, t); }, false)); ChangeImage(FingerType.Up); yield return(wait); fingerRectTransform.gameObject.SetActive(false); } }