// окончание перетаскивания public void OnEndDrag(PointerEventData eventData) { // если карту перетащили в Hand - карта удаляется // 3-3 + if (ToHand) { //Debug.Log("Destroy " + this.name); if (!FromHand) { Instance.ChangeMoney(ThreeFormation ? Instance.SpecifyField(PrevParent) : PrevParent, -SelfCard.Cost); } CC.DestroyCard(); } // если перетаскивание не с одного поля на другое else if (!SideToSide && EnoughMoney(DefaultParent, SelfCard.Cost) && (!ThreeFormation || getDropPlaceScript(DefaultParent).countCards != 3)) { // if (!(ThreeFormation && !CanMoveToSubField(DefaultParent))) // если формация 3-3 и перетаскивание в пределах поля. В функци проверки // если формация простая и хватает денег // EnoughMoney возвращает истинук если в пределах одного поля //Debug.Log("else"); transform.SetParent(DefaultParent); transform.SetSiblingIndex(TempCardGO.transform.GetSiblingIndex()); getDropPlaceScript(DefaultParent).countCards++; if (getDropPlaceScript(DefaultParent).Type != getDropPlaceScript(PrevParent).Type) { Instance.ChangeMoney(ThreeFormation ? Instance.SpecifyField(DefaultParent) : DefaultParent, SelfCard.Cost); } } else if (FromHand) { CC.DestroyCard(); } // иначе возвращаем на исходное место else { transform.SetParent(PrevParent); transform.SetSiblingIndex(TempCardGO.transform.GetSiblingIndex()); getDropPlaceScript(PrevParent).countCards++; } GetComponent <CanvasGroup>().blocksRaycasts = true; Instance.UpdateTreeFields(); // убрать временную обратно за камеру TempCardGO.transform.SetParent(GameObject.Find("Canvas").transform); TempCardGO.transform.localPosition = new Vector3(4000, 0); }