public void updateUI(int itemsToShow, string type, List <string> objName) { if (currType != type || currType == type) { int childs = inventoryPanel.transform.childCount; for (int i = 0; i < childs; i++) { Destroy(inventoryPanel.transform.GetChild(i).gameObject); currType = ""; } } currType = type; Vector2 screenPos = new Vector2(buttonOffset.x, -buttonOffset.y); for (int i = 0; i < itemsToShow; i++) { GameObject btn = ButtonFactory.createButton(objName[i], new Vector2(buttonSize, buttonSize), null, screenPos, false); RectTransform btnRect = btn.GetComponent <RectTransform>(); Button btnButton = btn.GetComponent <Button>(); InventoryButton invButton = btn.AddComponent <InventoryButton>(); btnRect.SetParent(inventoryPanel.transform); btnRect.pivot = new Vector2(0, 1); btnRect.anchorMin = new Vector2(0, 1); btnRect.anchorMax = new Vector2(0, 1); btnRect.localScale = new Vector3(1, 1, 1); btnRect.anchoredPosition = screenPos; if (btnRect.anchoredPosition.x >= invPanelRectTransform.rect.width) { screenPos = new Vector2(buttonOffset.x, btnRect.anchoredPosition.y - btnRect.sizeDelta.y - buttonOffset.y); btnRect.anchoredPosition = screenPos; } screenPos += new Vector2(btnRect.sizeDelta.x + buttonOffset.x, 0); invButton.GetObjName = objName[i]; invButton.GetObjType = currType; inventoryPanel.GetComponent <RectTransform>().sizeDelta = new Vector2(0, -btnRect.anchoredPosition.y + btnRect.sizeDelta.y + buttonOffset.y); } }
public void loadItems(Item.ItemType type) { Object[] itemsInFolder = Resources.LoadAll("Items/" + type.ToString() + "/"); Vector2 screenPos = new Vector2(buttonOffset.x, -buttonOffset.y); int childs = shopPanel.transform.childCount; for (int i = 0; i < childs; i++) { Destroy(shopPanel.transform.GetChild(i).gameObject); } for (int i = 0; i < itemsInFolder.Length; i++) { GameObject btn = ButtonFactory.createButton(itemsInFolder[i].name, new Vector2(buttonSize, buttonSize), Paths.ItemSprite + type + "/" + itemsInFolder[i].name, screenPos, true); btn.transform.SetParent(shopPanel.transform); RectTransform btnRect = btn.GetComponent <RectTransform>(); Button btnButton = btn.GetComponent <Button>(); btnRect.pivot = new Vector2(0, 1); btnRect.anchorMin = new Vector2(0, 1); btnRect.anchorMax = new Vector2(0, 1); btnRect.localScale = new Vector3(1, 1, 1); btnRect.anchoredPosition3D = new Vector3(0, 0, 0); btnRect.anchoredPosition = screenPos; if (btnRect.anchoredPosition.x >= shopPanelRectTransform.rect.width) { screenPos = new Vector3(buttonOffset.x, btnRect.anchoredPosition.y - btnRect.sizeDelta.y - buttonOffset.y - 10, 0); btnRect.anchoredPosition = screenPos; } screenPos += new Vector2(btnRect.sizeDelta.x + buttonOffset.x, 0); btnButton.onClick.AddListener(delegate() { createItem.CreateItem(btn.name, type); }); shopPanel.GetComponent <RectTransform>().sizeDelta = new Vector2(0, -btnRect.anchoredPosition.y + btnRect.sizeDelta.y + buttonOffset.y); /* * GameObject buttonGO = new GameObject(); * RectTransform buttonRT = buttonGO.AddComponent<RectTransform>(); * buttonRT.SetParent(shopPanel.transform); * * buttonGO.name = itemsInFolder[i].name; * * buttonRT.sizeDelta = new Vector2(buttonSize, buttonSize); * * buttonRT.pivot = new Vector2(0, 1); * buttonRT.anchorMin = new Vector2(0, 1); * buttonRT.anchorMax = new Vector2(0, 1); * * buttonRT.anchoredPosition = screenPos; * * if (buttonRT.anchoredPosition.x >= shopPanelRectTransform.rect.width) * { * screenPos = new Vector2(buttonOffset.x, buttonRT.anchoredPosition.y - buttonRT.sizeDelta.y - buttonOffset.y-10); * buttonRT.anchoredPosition = screenPos; * } * screenPos += new Vector2(buttonRT.sizeDelta.x + buttonOffset.x, 0); * * Button buttonBU = buttonGO.AddComponent<Button>(); * buttonBU.onClick.AddListener(() => {createItem.CreateMyItem(buttonGO.name,type); }); * Image buttonIM = buttonGO.AddComponent<Image>(); * buttonIM.sprite = Resources.Load<Sprite>("Items_Images/" + type + "/" + itemsInFolder[i].name); * // Button Label * GameObject label = new GameObject(); * RectTransform labelRT = label.AddComponent<RectTransform>(); * labelRT.SetParent(buttonGO.transform); * labelRT.anchoredPosition = new Vector2(buttonRT.sizeDelta.x/2, -buttonRT.sizeDelta.y-15); * Text labelText = label.AddComponent<Text>(); * labelText.font = Resources.Load<Font>("Fonts/Andale Mono"); * labelText.text = itemsInFolder[i].name; * labelText.color = Color.black; */ } }