public void SelectButton(Grid_UIButton btn, bool playDeselectEventsForOtherButtons = true) { if (btn == null) { return; } SelectButton(GetButtonIndex(btn), playDeselectEventsForOtherButtons); }
public void SelectButton(int index, bool playDeselectEventsForOtherButtons = true) { if (!buttons[index].SelectAction()) { return; } selectedButton = buttons[index]; DeselectAllButtons(playDeselectEventsForOtherButtons); }
public Grid_UIButton GetButtonClosestInDirectionFromSelected(InputDirection direction) { Grid_UIButton[] activeUnselectedButtons = ActiveButtons.Where(r => r.name != selectedButton.name).ToArray(); if (activeUnselectedButtons.Length == 0) { return(null); } Grid_UIButton closestInDirection = null; for (int i = 0; i < activeUnselectedButtons.Length; i++) { if (Compare.DistanceInDirection(selectedButton.transform.position, activeUnselectedButtons[i].transform.position, direction, selectedButton.buffers) > 0f && Mathf.Abs(Compare.DistanceInDirection(selectedButton.transform.position, activeUnselectedButtons[i].transform.position, (direction == InputDirection.Down || direction == InputDirection.Up) ? InputDirection.Right : InputDirection.Up)) < ( (direction == InputDirection.Down || direction == InputDirection.Up) ? selectedButton.Dimentions.x * 1.3f : selectedButton.Dimentions.y * 1.3f)) { if (closestInDirection == null) { closestInDirection = activeUnselectedButtons[i]; } else if (Compare.DistanceInDirection(selectedButton.transform.position, activeUnselectedButtons[i].transform.position, direction, selectedButton.buffers) < Compare.DistanceInDirection(selectedButton.transform.position, closestInDirection.transform.position, direction, selectedButton.buffers)) { if (Compare.IsInlineImage(closestInDirection.transform.position, closestInDirection.Dimentions, activeUnselectedButtons[i].transform.position, activeUnselectedButtons[i].Dimentions, (direction == InputDirection.Up || direction == InputDirection.Down) ? InputDirection.Right : InputDirection.Up)) { //if(direction == InputDirection.Up || direction == InputDirection.Down ? //(Mathf.Abs(selectedButton.transform.position.x - activeUnselectedButtons[i].transform.position.x) < //Mathf.Abs(selectedButton.transform.position.x - closestInDirection.transform.position.x)) : //(Mathf.Abs(selectedButton.transform.position.y - activeUnselectedButtons[i].transform.position.y) < //Mathf.Abs(selectedButton.transform.position.y - closestInDirection.transform.position.y))) //{ if (Vector2.Distance(closestInDirection.transform.position, selectedButton.transform.position) > Vector2.Distance(activeUnselectedButtons[i].transform.position, selectedButton.transform.position)) { closestInDirection = activeUnselectedButtons[i]; } // } } else { closestInDirection = activeUnselectedButtons[i]; } } } } return(closestInDirection); }
int GetButtonIndex(Grid_UIButton btn) { if (btn == null) { return(-1); } for (int i = 0; i < buttons.Length; i++) { if (buttons[i].name == btn.name) { return(i); } } return(-1); }
public Grid_UIButton GetButtonFurthestInDirection(InputDirection comparison) { if (ActiveButtons.Length == 0) { return(null); } Grid_UIButton furthestInDirection = null; for (int i = 0; i < ActiveButtons.Length; i++) { if (furthestInDirection == null) { furthestInDirection = ActiveButtons[i]; } else if (Compare.InDirectionTo(ActiveButtons[i].transform.position, furthestInDirection.transform.position, comparison)) { furthestInDirection = ActiveButtons[i]; } } return(furthestInDirection); }
public void DeselectButton(Grid_UIButton btn, bool playDeselectEvents = true) { DeselectButton(GetButtonIndex(btn), playDeselectEvents); }