public void OnMouseUp() { if (SelectedObject != null) { bool gravityActive = SelectedObject.GetComponent <GridMovement>().GravityActive; if (SafeToDrop && !gravityActive) //actually drop item in truck { SelectedObject.SendMessage("Fall"); //tell object to fall ItemScore score = SelectedObject.GetComponentInChildren(typeof(ItemScore)) as ItemScore; score.state = ItemScore.State.OnTruck; itemQueue.RemoveFromQueue(SelectedObject); SelectedObject = null;//is no longer selected dropSnd.Play(); } else if (SafeToTrash && !gravityActive)//drop item in trash { itemQueue.RemoveFromQueue(SelectedObject); TrashSnd.Play(); SelectedObject.gameObject.GetComponentInChildren <SpriteRenderer>().enabled = false; Destroy(SelectedObject.gameObject, TrashSnd.clip.length); SelectedObject = null;//is no longer selected } else//item was dropped somewhere else on screen { //do something other than drop it //Back to selection thing? SelectedObject.position = OriginalPos; SelectedObject.GetComponent <BoxCollider2D>().enabled = true; SelectedObject = null; } } }