示例#1
0
    public void DrawInventory()
    {
        itemsBackground.gameObject.SetActive(true);
        equipmentBackground.gameObject.SetActive(true);
        List <EquipmentItem> slots = new List <EquipmentItem>()
        {
            weapon, helmet, chest, legs, feet
        };

        foreach (Item item in PlayerManager.Instance.equipment.GetItems())
        {
            EquipmentItem slot = slots.Find(s => s.GetItemType() == item.itemType);
            if (slot == null)
            {
                Debug.Log("Cannot find slot");
            }
            else
            {
                slot.SetItem(item);
            }
        }

        int x = 0;
        int y = 0;

        foreach (Item item in PlayerManager.Instance.inventory.GetItems())
        {
            RectTransform itemRectTransform = Instantiate(prefab, itemsBackground).GetComponent <RectTransform>();
            itemRectTransform.gameObject.SetActive(true);
            itemRectTransform.anchoredPosition = new Vector2(x * (itemRectTransform.rect.width + xPadding), -1 * y * (itemRectTransform.rect.height + yPadding));
            InventoryItem invItem = itemRectTransform.GetComponent <InventoryItem>();
            invItem.SetItem(item);

            x++;
            if (x > columns)
            {
                x = 0;
                y++;
                if (y > rows)
                {
                    Debug.Log("Too many items in inventory to display");
                    break;
                }
            }
        }
    }