private void Update() { // Mouse Selection Input PointerEventData pointerData = new PointerEventData(EventSystem.current); List <RaycastResult> raycastResults = new List <RaycastResult>(); pointerData.position = Input.mousePosition; this.graphicRaycaster.Raycast(pointerData, raycastResults); if (selectedButton) { selectedButton.mouseHovering = false; } foreach (RaycastResult result in raycastResults) { MenuButtonScript resultScript = result.gameObject.GetComponentInParent <MenuButtonScript>(); if (resultScript) { index = resultScript.GetIndex(); resultScript.mouseHovering = true; selectedButton = resultScript; } } // Keyboard Selection Input if (Input.GetAxis("Vertical") != 0 && prevKeyDown == 0) { if (Input.GetAxis("Vertical") < 0) { index = index + 1; if (index > maxIndex) { index = 0; } } else if (Input.GetAxis("Vertical") > 0) { index -= 1; if (index < 0) { index = maxIndex; } } } prevKeyDown = Input.GetAxis("Vertical"); }
//refreshes the list, highlighting the current deck void refresh(XMLDeck currentDeck) { //remove all deck buttons that no longer have a corresponding deck foreach (MenuButtonScript toRemove in buttons.FindAll(mb => (mb.buttonType == MenuButtonType.deck) && (DeckManagerScript.instance.playerDecks.decks.Contains(mb.xDeck) == false))) { buttons.Remove(toRemove); Destroy(toRemove.gameObject); } //create buttons for decks that do not have a corresponding button foreach (XMLDeck newDeck in DeckManagerScript.instance.playerDecks.decks) { if (buttons.Any(mb => mb.xDeck == newDeck) == false) { MenuButtonScript xButton = Instantiate(buttonPrefab).GetComponent <MenuButtonScript>(); xButton.SendMessage("setDeck", newDeck); //set button color Color targetColor; if (newDeck.isModded()) { targetColor = moddedColor; } else { targetColor = defaultColor; } if (newDeck == currentDeck) { targetColor = Color.Lerp(targetColor, highlightColor, 0.5f); } xButton.setColor(targetColor); xButton.transform.SetParent(this.transform, false); buttons.Add(xButton); } } }
//adds deck buttons to the list. If highlightDeck is in the list, that button is a different color void setupDeckButtons(XMLDeck highlightDeck) { //one button for each player deck foreach (XMLDeck xDeck in DeckManagerScript.instance.playerDecks.decks) { MenuButtonScript xButton = Instantiate(buttonPrefab).GetComponent <MenuButtonScript>(); xButton.setDeck(xDeck); //set button color Color targetColor; if (xDeck.isModded()) { targetColor = moddedColor; } else { targetColor = defaultColor; } if (xDeck == highlightDeck) { targetColor = Color.Lerp(targetColor, highlightColor, 0.5f); } xButton.setColor(targetColor); xButton.transform.SetParent(this.transform, false); buttons.Add(xButton); } //another button for making a new deck MenuButtonScript ndButton = Instantiate(buttonPrefab).GetComponent <MenuButtonScript>(); ndButton.setButtonText("New Deck"); ndButton.setColor(menuColor); ndButton.transform.SetParent(this.transform, false); buttons.Add(ndButton); }
public void PrepareEndScene() { var MenuButtonGo = Instantiate(MenuButtonPrefab, MenuBox.transform); _menuButtonScript = MenuButtonGo.GetComponent <MenuButtonScript> (); }
private void Start() { Player ??= GameObject.FindGameObjectWithTag("Player"); _clear = GameObject.Find("MenuPanel").GetComponent <MenuButtonScript>(); }