Прежде чем синтезировать и отправлять пользовательские события, вы должны понять, как UI(пользовательский интерфейс) позволяет пользователю взаимодействовать с ваше приложение. Подробнее
См. в Словарь Toolkit система событийСпособ отправки событий объектам в приложении на основе ввода, будь то клавиатура, мышь, касание или пользовательский ввод. Система событий состоит из нескольких компонентов, которые работают вместе для отправки событий. Подробнее
См. Словарь выделяет и отправляет события операционной системы.
Система событий использует пул событий, чтобы избежать повторного выделения объектов событий. Чтобы синтезировать и отправлять собственные события, вы должны выделить и отправить события, выполнив те же действия:
- Получить объект события из пула событий.
- Заполните свойства события.
- Заключите событие в блок
using
, чтобы обеспечить его возврат в пул событий. - Передайте событие в
element.SendEvent()
.
Если вы хотите отправлять события, поступающие из операционной системы, например события клавиатуры и некоторые события мыши, используйте UnityEngine.Event
для инициализации события UI Toolkit.< /p>
В следующем примере показано, как синтезировать и отправлять события:
void SynthesizeAndSendKeyDownEvent(IPanel panel, KeyCode code,
char character = '\0', EventModifiers modifiers = EventModifiers.None)
{
// Create a UnityEngine.Event to hold initialization data.
// Also, this event will be forwarded to IMGUIContainer.m_OnGUIHandler
var evt = new Event() {
type = EventType.KeyDownEvent,
keyCode = code,
character = character,
modifiers = modifiers
};
using (KeyDownEvent keyDownEvent = KeyDownEvent.GetPooled(evt))
{
panel.SendEvent(keyDownEvent);
}
}