public void InvokeLootUI(List <Item> items) { this.gameObject.ActivateGO(); foreach (Item item in items) { LootSlot slot = this._lootSlots.FirstOrDefault(_ => _.ItemObjectInSlot == null); if (slot == null) { throw new Exception("Loot overflow! Maximum size reached!"); } slot.InstantiateItemObject(ItemObject.Instantiate(item)); } this.CheckTake(); }
private void Start() { Messenger.AddListener(M.INV_CHANGED, this.CheckTake); this._buttonOK.AddAction(this.TakeItems); for (int i = 0; i < 12; i++) { LootSlot slot = Instantiate(this._slotPrfb, this._slotsParent.transform).GetComponent <LootSlot>(); if (slot == null) { throw new ArgumentNullException(nameof(slot)); } slot.Loot = this; this._lootSlots.Add(slot); } this.gameObject.DeactivateGO(); this._notEnoughSpaceMark.DeactivateGO(); }
public void OnPointerClick(PointerEventData eventData) { PointerEventData pointerData = new PointerEventData(EventSystem.current) { pointerId = -1, position = Input.mousePosition }; List <RaycastResult> results = new List <RaycastResult>(); EventSystem.current.RaycastAll(pointerData, results); foreach (RaycastResult result in results) { LootSlot lootSlot = result.gameObject.GetComponent <LootSlot>(); if (lootSlot != null) { lootSlot.OnPointerClick(eventData); return; } } }