private void UpdateVisual() { foreach (Transform child in itemContainer) { Destroy(child.gameObject); } Item weaponItem = characterEquipment.GetWeaponItem(); if (weaponItem != null) { Transform uiItemTransform = Instantiate(pfUI_Item, itemContainer); uiItemTransform.GetComponent <RectTransform>().anchoredPosition = weaponSlot.GetComponent <RectTransform>().anchoredPosition; uiItemTransform.localScale = Vector3.one * 1.5f; //uiItemTransform.GetComponent<CanvasGroup>().blocksRaycasts = false; UI_Item uiItem = uiItemTransform.GetComponent <UI_Item>(); uiItem.SetItem(weaponItem); weaponSlot.transform.Find("emptyImage").gameObject.SetActive(false); } else { weaponSlot.transform.Find("emptyImage").gameObject.SetActive(true); } Item armorItem = characterEquipment.GetArmorItem(); if (armorItem != null) { Transform uiItemTransform = Instantiate(pfUI_Item, itemContainer); uiItemTransform.GetComponent <RectTransform>().anchoredPosition = armorSlot.GetComponent <RectTransform>().anchoredPosition; uiItemTransform.localScale = Vector3.one * 1.5f; //uiItemTransform.GetComponent<CanvasGroup>().blocksRaycasts = false; UI_Item uiItem = uiItemTransform.GetComponent <UI_Item>(); uiItem.SetItem(armorItem); armorSlot.transform.Find("emptyImage").gameObject.SetActive(false); } else { armorSlot.transform.Find("emptyImage").gameObject.SetActive(true); } Item helmetItem = characterEquipment.GetHelmetItem(); if (helmetItem != null) { Transform uiItemTransform = Instantiate(pfUI_Item, itemContainer); uiItemTransform.GetComponent <RectTransform>().anchoredPosition = helmetSlot.GetComponent <RectTransform>().anchoredPosition; uiItemTransform.localScale = Vector3.one * 1.5f; //uiItemTransform.GetComponent<CanvasGroup>().blocksRaycasts = false; UI_Item uiItem = uiItemTransform.GetComponent <UI_Item>(); uiItem.SetItem(helmetItem); helmetSlot.transform.Find("emptyImage").gameObject.SetActive(false); } else { helmetSlot.transform.Find("emptyImage").gameObject.SetActive(true); } }
private UI_Item CreateUI_Item(int index) { UI_InventorySlot uI_InventorySlot = uI_InventorySlotList[index]; Transform uI_ItemTransform = Instantiate(uI_ItemTemplate, uI_InventorySlot.transform); uI_ItemTransform.GetComponent <RectTransform>().anchoredPosition = Vector2.zero; uI_ItemTransform.gameObject.SetActive(true); UI_Item uI_Item = uI_ItemTransform.GetComponent <UI_Item>(); uI_Item.SetIndex(index); uI_Item.SetItem(inventory.GetItem(index)); uI_Item.UpdateUI(); return(uI_Item); }
private void RefreshInventoryItems() { foreach (Transform child in itemSlotContainer) { if (child == itemSlotTemplate) { continue; } Destroy(child.gameObject); } int x = 0; int y = 0; float itemSlotCellSize = 54f; foreach (Inventory.InventorySlot inventorySlot in inventory.GetInventorySlotArray()) { Item item = inventorySlot.GetItem(); RectTransform itemSlotRectTransform = Instantiate(itemSlotTemplate, itemSlotContainer).GetComponent <RectTransform>(); itemSlotRectTransform.gameObject.SetActive(true); itemSlotRectTransform.GetComponent <Button_UI>().ClickFunc = () => { // Use item //inventory.UseItem(item); }; itemSlotRectTransform.GetComponent <Button_UI>().MouseRightClickFunc = () => { // Split item if (item.IsStackable()) { // Is Stackable if (item.amount > 2) { // Can split int splitAmount = Mathf.FloorToInt(item.amount / 2f); item.amount -= splitAmount; Item duplicateItem = new Item { itemType = item.itemType, amount = splitAmount }; inventory.AddItem(duplicateItem); } } // Drop item //Item duplicateItem = new Item { itemType = item.itemType, amount = item.amount }; //inventory.RemoveItem(item); //ItemWorld.DropItem(player.GetPosition(), duplicateItem); }; itemSlotRectTransform.anchoredPosition = new Vector2(x * itemSlotCellSize, -y * itemSlotCellSize); if (!inventorySlot.IsEmpty()) { // Not Empty, has Item Transform uiItemTransform = Instantiate(pfUI_Item, itemSlotContainer); uiItemTransform.GetComponent <RectTransform>().anchoredPosition = itemSlotRectTransform.anchoredPosition; UI_Item uiItem = uiItemTransform.GetComponent <UI_Item>(); uiItem.SetItem(item); } Inventory.InventorySlot tmpInventorySlot = inventorySlot; UI_ItemSlot uiItemSlot = itemSlotRectTransform.GetComponent <UI_ItemSlot>(); uiItemSlot.SetOnDropAction(() => { // Dropped on this UI Item Slot Item draggedItem = UI_ItemDrag.Instance.GetItem(); draggedItem.RemoveFromItemHolder(); inventory.AddItem(draggedItem, tmpInventorySlot); }); /* * TextMeshProUGUI uiText = itemSlotRectTransform.Find("amountText").GetComponent<TextMeshProUGUI>(); * if (inventorySlot.IsEmpty()) { * // Empty * uiText.SetText(""); * } else { * if (item.amount > 1) { * uiText.SetText(item.amount.ToString()); * } else { * uiText.SetText(""); * } * } */ x++; int itemRowMax = 7; if (x >= itemRowMax) { x = 0; y++; } } }