protected void PutInSlot(Button slot, IHoldable holdable) { if (slot != null) { var trigger = slot.GetComponent <EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerUp; entry.callback.AddListener((data) => { player.TakeInHand(holdable); foreach (var item in AllSlots) { slotSelector.Deselect(item.gameObject); } slotSelector.Select(data.selectedObject); }); trigger.triggers.Add(entry); // set name to slot var text = slot.GetComponentInChildren <Text>(); if (text != null) { text.text = holdable == null ? "Empty" : holdable.ToString(); } } }