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; } } } }