private void Inventory_OnItemListRemoved(object sender, Item itemRemoved) { InventoryItemSlot inventoryItemSlot = GetItemTypeAlreadyInInventory(itemRemoved.itemType); RectTransform itemSlotRectTransform; if (inventoryItemSlot != null) { inventoryItemSlot.SetAmount(inventoryItemSlot.GetAmount() - itemRemoved.amount); itemSlotRectTransform = inventoryItemSlot.GetComponent <RectTransform>(); Transform amountTransform = itemSlotRectTransform.Find("Amount"); TextMeshProUGUI uiText = amountTransform.Find("Text").GetComponent <TextMeshProUGUI>(); if (inventoryItemSlot.GetAmount() == 0) { Destroy(inventoryItemSlot.gameObject); } else if (inventoryItemSlot.GetAmount() > 1) { uiText.SetText(inventoryItemSlot.GetAmount().ToString()); amountTransform.gameObject.SetActive(true); } else { amountTransform.gameObject.SetActive(false); } } }
private void Inventory_OnItemListAdded(object sender, Item itemAdded) { InventoryItemSlot inventoryItemSlot = GetItemTypeAlreadyInInventory(itemAdded.itemType); RectTransform itemSlotRectTransform; if (inventoryItemSlot != null) { itemSlotRectTransform = inventoryItemSlot.GetComponent <RectTransform>(); Transform amountTransform = itemSlotRectTransform.Find("Amount"); TextMeshProUGUI uiText = amountTransform.Find("Text").GetComponent <TextMeshProUGUI>(); inventoryItemSlot.SetAmount(inventoryItemSlot.GetAmount() + itemAdded.amount); uiText.SetText(inventoryItemSlot.GetAmount().ToString()); if (inventoryItemSlot.GetAmount() > 1) { amountTransform.gameObject.SetActive(true); } else { amountTransform.gameObject.SetActive(false); } } else { itemSlotRectTransform = Instantiate(_itemSlotTemplate, _itemSlotContainer).GetComponent <RectTransform>(); itemSlotRectTransform.gameObject.SetActive(true); itemSlotRectTransform.GetComponent <Button>().onClick.AddListener(() => { // Use item _inventory.UseItem(itemAdded); }); itemSlotRectTransform.GetComponent <InventoryItemSlot>().SetItemType(itemAdded.itemType); itemSlotRectTransform.GetComponent <InventoryItemSlot>().SetAmount(itemAdded.amount); Image imagem = itemSlotRectTransform.Find("Image").GetComponent <Image>(); imagem.sprite = itemAdded.GetInventorySprite(); Transform amountTransform = itemSlotRectTransform.Find("Amount"); if (itemAdded.amount > 1) { TextMeshProUGUI uiText = amountTransform.Find("Text").GetComponent <TextMeshProUGUI>(); uiText.SetText(itemAdded.amount.ToString()); } else { amountTransform.gameObject.SetActive(false); } } }