Unity UI Element Button selection and click simulation via script
simulate select and click
using UnityEngine.EventSystems;
using UnityEngine.UI;
...
[SerializeField] private Button myButton;
...
// simulate click :
ExecuteEvents.Execute(myButton.gameObject, new BaseEventData(EventSystem.current), ExecuteEvents.submitHandler);
// simulate selection :
EventSystem.current.SetSelectedGameObject(myButton.gameObject);
// or:
myButton.Select();
myButton.OnSelect();
------------------------------------------------------------------------
List<Button> shuffling
   private GameObject[] _buttonGameObjects;
   private int _buttonIndex = -1;
..
_buttonGameObjects = GameObject.FindGameObjectsWithTag("MenuButton");
..
// select next button
            if (_buttonIndex + 1 == _buttonGameObjects.Length)
                _buttonIndex = 0;
            else
               _buttonIndex++;
  EventSystem.current.SetSelectedGameObject(_buttonGameObjects[_buttonIndex]);
..
// select previous button
            if (_buttonIndex - 1 < 0)
                _buttonIndex = _buttonGameObjects.Length - 1;
            else
                _buttonIndex--;
          EventSystem.current.SetSelectedGameObject(_buttonGameObjects[_buttonIndex]);
-----------------------------------------------------
Get all Buttons nested in a GameObject below the Canvas. The demo structure is ...Canvas, MenuPageLanguageSelection, MenuButton1...
    private Canvas myCanvas;
    private GameObject myMenuPageLanguage;
    GameObject[] myMenuButtonGameObjects;
    private void Awake()
    {
         myCanvas = GameObject.FindObjectOfType<Canvas>(); // only one in scene
        myMenuPageLanguage = myCanvas.transform.GetChild(0).gameObject; 
        myMenuButtonGameObjects = new                       GameObject[myMenuPageLanguage.transform.childCount];
        for (int i = 0; i < myMenuPageLanguage.transform.childCount; i++)
        {
            myMenuButtonGameObjects[i] =                      myMenuPageLanguage.transform.GetChild(i).gameObject;
        }
}



0 Kommentare:
Kommentar veröffentlichen
Abonnieren Kommentare zum Post [Atom]
<< Startseite