public void CreateMenu(ManagePlayerData managePlayerData) { //if menu is already being displayed don't redisplay if (displayingMenu) { return; } //create Menu displayingMenu = true; player.GetComponent <FirstPersonAIO>().ControllerPause(); ///Debug.Log("Creating Menu Now"); newCanvas = Instantiate(MenuCanvas); GameObject newButton; EventSystem eventSystem = EventSystem.current; //get current eventsystem //ManagePlayerData managePlayerData = player.GetComponent<ManagePlayerData>(); //Loop through players Items to check what items they have int buttonIndex = 0; int buttonHeight = (int)ingredientButton.GetComponent <RectTransform>().rect.height; for (int i = 0; i < numIngredients; i++) { if (managePlayerData.getIngredientCount(i) > 0) //if the player has at least one of this ingredient make a button for it { newButton = Instantiate(ingredientButton); newButton.transform.SetParent(newCanvas.transform, false); //newButton.GetComponent<RectTransform>().position.Set(20, 100 - 30 * buttonIndex, 0); newButton.GetComponent <RectTransform>().anchoredPosition = new Vector2(20, 100 - buttonHeight * buttonIndex); newButton.GetComponentInChildren <Text>().text = ((IngredientID)i).ToString(); //Create new int to store current return value of the button int x = new int(); x = i; newButton.GetComponent <Button>().onClick.AddListener(delegate { MenuButtonPressed(x, managePlayerData); }); if (buttonIndex == 0) //if this is the first button set it as FirstSelected { eventSystem.SetSelectedGameObject(newButton); } buttonIndex++; } } ///Debug.Log("Created Menu"); // newButton = Instantiate(ingredientButton); // newButton.transform.SetParent(newCanvas.transform, false); // newButton.GetComponent<RectTransform>().position.Set(20, 100 - 30 * buttonIndex, 0); // newButton.GetComponentInChildren<Text>().text = ((IngredientID)0).ToString(); //GameObject buttonText = newButton.transform.GetChild(0).gameObject; }
private int numIngredients = 5; //the total number of ingredients in the game public void CreateMenu(GameObject player) { //create Menu GameObject newCanvas = Instantiate(MenuCanvas); GameObject newButton; ManagePlayerData managePlayerData = gameObject.GetComponent <ManagePlayerData>(); //Loop through players Items to check what items they have int buttonIndex = 0; for (int i = 0; i < numIngredients; i++) { if (managePlayerData.getIngredientCount(i) > 0) //if the player has at least one of this ingredient make a button for it { newButton = Instantiate(ingredientButton); newButton.transform.SetParent(newCanvas.transform, false); newButton.GetComponent <RectTransform>().position.Set(20, 100 - 30 * buttonIndex, 0); newButton.GetComponentInChildren <Text>().text = ((IngredientID)i).ToString(); } } //GameObject buttonText = newButton.transform.GetChild(0).gameObject; }