public IEnumerator MoveToPlaceHolder() { while (PlaceHolder != null && Vector3.Distance(transform.position, PlaceHolder.position) > 1) { float step = MovementSpeed * Time.deltaTime; transform.position = Vector3.MoveTowards(transform.position, PlaceHolder.position, step); yield return(null); } if (PlaceHolder == null) { Discard(); yield break; } CardStack prevParentStack = ParentCardStack; transform.SetParent(PlaceHolder.parent); transform.SetSiblingIndex(PlaceHolder.GetSiblingIndex()); transform.localScale = Vector3.one; if (prevParentStack != null) { prevParentStack.OnRemove(this); } if (ParentCardStack != null) { ParentCardStack.OnAdd(this); } PlaceHolder = null; canvasGroup.blocksRaycasts = true; }