public void OnEndDrag(PointerEventData eventData) { List <RaycastResult> results = new List <RaycastResult>(); caster.Raycast(eventData, results); foreach (RaycastResult result in results) { GarrisonSlot garSlot = result.gameObject.GetComponent <GarrisonSlot>(); if (garSlot != null) { AddToNewSlot(garSlot); slot.DestroySelf(); return; } } //This is for when you drop it outside ReturnToParent(); UnSetMovedColor(); GarrisonSlot gSlot = (GarrisonSlot)Utility.GetFirstComponentInParents(gameObject, typeof(GarrisonSlot)); gSlot.SetTroopsList(); }