IEnumerator Move(Vector3 targetPosition, float duration)
    {
        var colliders = gameObject.GetComponentsInChildren <Collider2D>();

        foreach (var col in colliders)
        {
            col.enabled = false;
        }

        Vector3    startPosition = transform.position;
        Quaternion startRotation = transform.rotation;

        var t = 0f;

        while (t < 1)
        {
            t += Time.deltaTime / duration;
            transform.position = Vector3.Lerp(startPosition, targetPosition, Utility.BounceEaseOut(t));
            transform.rotation = Quaternion.Lerp(startRotation, Quaternion.identity, t);
            yield return(null);
        }

        foreach (var col in colliders)
        {
            col.enabled = true;
        }
        currentState = draggableState;
    }
 private void Start()
 {
     if (ringNumber == 1)
     {
         currentState = draggableState;
     }
     else
     {
         currentState = idleState;
         currentState.ToIdleState();
     }
 }