public void OnEndDrag(PointerEventData eventData) { if (!m_Draggable) { return; } // Play sound QuestionCanvas.GetInstance().PlayTickSound(); // Temporarely move draggable object back to initial location ResetInstance(); // Perform a raycast at mouse pointer position RaycastHit2D hit = Physics2D.Raycast(Input.mousePosition, Vector3.forward, 10.0f); // Check if raycast hit was a non-static question tile if (hit && hit.transform.gameObject.tag.Equals(TARGET_TAG)) { // Get a reference to this question tile QuestionTile tile = hit.transform.GetComponent <QuestionTile>(); // If non-static and not occupied, slot this value if (!tile.IsStatic() && !tile.IsSlotted()) { transform.position = tile.transform.position; tile.SlotValue(GetValue()); } } }