IEnumerator Moving(PointLevel targetPoint) { sp.PlaySound(0); currentPoint.exitResponse.Invoke(); boing.t = 0; currentPoint.Switch(false); targetPoint.Switch(true); canMove = false; Vector3 startPos = currentPoint.transform.position; float t = 0; while (t < moveTime) { t += Time.deltaTime; transform.position = Vector3.Lerp(startPos, targetPoint.transform.position, Ease.SmoothStep(t / moveTime)); yield return(null); } switcher.Switch(); currentPoint = targetPoint; currentPoint.enterResponse.Invoke(); if (currentPoint.lvlInfo.success) { currentPoint.enterUnlockedResponse.Invoke(); } canMove = (locked) ? false : true; }
IEnumerator Moving(Point targetPoint) { sp.PlaySound(0); target = targetPoint; boing.t = 0; currentPoint.Switch(false); if (currentPoint.nbOnTop == 0) { currentPoint.exitResponse.Invoke(); } targetPoint.Switch(true); canMove = false; Vector3 startPos = currentPoint.transform.position; Vector3 goalPos = targetPoint.transform.position; float t = 0; while (t < moveTime) { t += Time.deltaTime; float l = Mathf.Clamp(Ease.SmoothStep(t / moveTime), 0, 1); transform.position = Vector3.Lerp(startPos, goalPos, l); yield return(null); } switcher.Switch(); currentPoint = targetPoint; if (targetPoint.nbOnTop == 1) { targetPoint.enterResponse.Invoke(); } canMove = (locked)?false: true; }