IEnumerator drawPieceMoveBack() { Vector3 startPos = ReleasePoint.transform.position; Vector3 releasePos = transform.position; Vector3 startRot = slingshot.transform.rotation.eulerAngles + startRotation; while (Vector3.Distance(transform.position, startPos) > 0.01f) { startPos = ReleasePoint.transform.position; transform.position = Vector3.Lerp(transform.position, startPos, 0.5f); startRot = slingshot.transform.rotation.eulerAngles + startRotation; transform.rotation = Quaternion.Euler(startRot); yield return(new WaitForEndOfFrame()); } if (slingshot.isReadyToShoot) { slingshot.shoot(startPos); } }