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; }
public void ParentToCanvas(Vector3 targetPosition) { if (IsOnline && hasAuthority) { CmdUnspawnCard(); } CardStack prevParentStack = ParentCardStack; if (CurrentDragPhase == DragPhase.Drag) { prevParentStack.UpdateScrollRect(DragPhase.End, CurrentPointerEventData); } transform.SetParent(CardGameManager.Instance.CardCanvas.transform); transform.SetAsLastSibling(); if (prevParentStack != null) { prevParentStack.OnRemove(this); } canvasGroup.blocksRaycasts = false; ((RectTransform)transform).anchorMax = 0.5f * Vector2.one; ((RectTransform)transform).anchorMin = 0.5f * Vector2.one; ((RectTransform)transform).pivot = 0.5f * Vector2.one; transform.position = targetPosition; transform.localScale = Vector3.one; }