Пример #1
0
 public void SelectButton(Grid_UIButton btn, bool playDeselectEventsForOtherButtons = true)
 {
     if (btn == null)
     {
         return;
     }
     SelectButton(GetButtonIndex(btn), playDeselectEventsForOtherButtons);
 }
Пример #2
0
    public void SelectButton(int index, bool playDeselectEventsForOtherButtons = true)
    {
        if (!buttons[index].SelectAction())
        {
            return;
        }

        selectedButton = buttons[index];
        DeselectAllButtons(playDeselectEventsForOtherButtons);
    }
Пример #3
0
    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);
    }
Пример #4
0
 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);
 }
Пример #5
0
    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);
    }
Пример #6
0
 public void DeselectButton(Grid_UIButton btn, bool playDeselectEvents = true)
 {
     DeselectButton(GetButtonIndex(btn), playDeselectEvents);
 }