Выполнить нажатие кнопки NGUI из скрипта в единстве C # - PullRequest
1 голос
/ 02 ноября 2019

У меня есть кнопка NGUI, и она содержит сценарии UIButton и UIToggle. Из другого скрипта я хочу запустить событие click со всеми соответствующими изменениями состояния кнопки, такими как изменение цвета и т. Д. Для этого я нашел эту ссылку и вот мой код.

   public UIButton userManagmentBtn;
    public void ClosePanel()
    {
        Debug.Log("Calling panel Colse");
        EventDelegate.Execute(userManagmentBtn.onClick);
    }

Но событие click не срабатывает при использовании этого: EventDelegate.Execute

1 Ответ

0 голосов
/ 02 ноября 2019

Нет эксперта NGUI, но вы можете вызвать всех слушателей, просто позвоните

userManagementBtn.OnClick();

Кроме того, для правильной раскраски и т. Д., Вы можете позвонить SetState

userManagementBtn.SetState(UIButtonColor.State.Pressed, true);

В качестве альтернативы вы можете попытаться отправить "вручную" соответствующие события указателя через ExecuteEvents.Execute, например, например

var pointer = new PointerEventData(EventSystem.current);
ExecuteEvents.Execute(userManagementBtn.gameObject, pointer, ExecuteEvents.pointerEnterHandler);
ExecuteEvents.Execute(userManagementBtn.gameObject, pointer, ExecuteEvents.pointerClickHandler);
...