IEnumerator MoveRoutine() { Vector2 lerp = Vector2.zero; Color tempC = obImage.color; float flerp = 0; for (float i = 0; i < 10f; i += Time.deltaTime) { if (i < 2) { tempC.a = Mathf.SmoothStep(0, 1, i / 2f); obImage.color = tempC; } lerp = Vector2.Lerp(startTran, endTran, i / 10f); flerp = i * 50f; obRect.anchoredPosition = lerp; obRect.localEulerAngles = new Vector3(0, 0, flerp); yield return(null); } tempC.a = 1; obImage.color = tempC; obRect.anchoredPosition = endTran; flerp = 1; for (float i = 0; i < 1f; i += Time.deltaTime) { flerp = Mathf.SmoothStep(0, 1, (1 - i) / 1f); obRect.localScale = new Vector3(flerp, flerp, flerp); yield return(null); } gameObject.SetActive(false); obRect.localScale = Vector3.one; introScript.Reset(this == introScript.squareOb); }