Hi, I use Unity 2019.3.13f1 and I have a little problem with Drag And Drop script. I hope to be clear and to write well. I'm doing a little card game where you choose the card and place it in a table. But the card, that are a drag item, is positioned when i move the card and doing a miss click and click drop space. Otherwise return at start position. The Card are a Button Component and runtimes are inserted as children into the Content of a Scrollrect, this Scrollrect has a Grid Layout Component. And Slot are a Image Component that have Grid Layout Component, children of Board that have Canvas Group Component Share my script: Drag Item: Code (CSharp): using UnityEngine; using UnityEngine.EventSystems; public class CardBehaviour : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { Vector3 startPosition; int orderCard; Transform startTransform; public static GameObject actualCard = default; void Start() { startTransform = GameObject.Find("Content").transform; } public void OnBeginDrag(PointerEventData eventData) { actualCard = this.transform.gameObject; startPosition = this.transform.position; orderCard = this.transform.GetSiblingIndex(); this.transform.SetParent(GameObject.Find("Canvas").transform); Board.Instance.transform.GetComponent<CanvasGroup>().blocksRaycasts = false; } public void OnDrag(PointerEventData eventData) { this.transform.position = eventData.position; } public void OnEndDrag(PointerEventData eventData) { Board.Instance.transform.GetComponent<CanvasGroup>().blocksRaycasts = true; if(transform.parent != startTransform.parent) { this.transform.SetParent(startTransform.transform); this.transform.SetSiblingIndex(orderCard); this.transform.position = startPosition; } } Drop Slot: Code (CSharp): public void OnDrop(PointerEventData eventData) { if (this.transform.childCount == 0) CardBehaviour.actualCard.transform.SetParent(this.transform); CardBehaviour.actualCard = null; }