условие на toggle в unity

Как сделать условие на UI объект toggle? То есть если is on равняется true, выполнять определённое действие. Много искал в интернете, но ничего не нашёл.


Ответы (1 шт):

Автор решения: Manciny

Что бы получить у Toggle доступ к is On используй myTogle.isOn. Пример:

    public Toggle toggle;

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            CheckToogle();
        }
    }


    private void CheckToogle()
    {
        Debug.Log(toggle.isOn);
    }

(не забудь присвоить toggle в инспекторе или получив на на него ссылку в Awake или Start.)

Что бы при изменении состояния isOn происходило какое то действие - подпиши необходимый метод на событие onValueChanged одним из двух способов. Первый - кодом. Сигнатура метода должна быть соблюдена следующим образом - метод должен ни чего не возвращать, а на вход принимать bool. Пример:

    public Toggle toggle;

    private void Start()
    {
        toggle.onValueChanged.AddListener(SomeVoid);
    }

    public void SomeVoid(bool isOn)
    {
        Debug.Log(toggle.isOn);
    }  

Второй способ - привязать необходимый метод в инспекторе. У компонента Toggle нажать "+" внизу, в поле On Value Changed. Перенести в "Object" объект, на котором висит скрипт, который будет обрабатывать событие и в выпадающем списке выбрать необходимую функцию:

→ Ссылка