public void OnPointerUp(PointerEventData eventData) { RectTransform invPanel = inventoryGO.transform as RectTransform; //If we release the mouse outside of the panel then the FIRST slot //we clicked will be dropped from eventData raycast at OnPointerDown if (!RectTransformUtility.RectangleContainsScreenPoint(invPanel, Input.mousePosition)) { inventory.DropInventoryUI(slotNumberOne); return; } //Figure out where were releasing our mouse PointerEventData pointer = new PointerEventData(EventSystem.current); pointer.position = Input.mousePosition; List <RaycastResult> raycastResults = new List <RaycastResult>(); EventSystem.current.RaycastAll(pointer, raycastResults); //If we have something we hit if (raycastResults.Count > 0) { //Determine if its a slot0 - Slot9 on SECOND[1] Obj for (int i = 0; i < 10; i++) { if (raycastResults[1].gameObject.tag == slotTagArray[i]) { slotNumberTwo = i; break; } } } if (slotNumberOne != slotNumberTwo) { inventory.SwapInventoryUI(slotNumberOne, slotNumberTwo); } else { return; } }