Version: 2021.3
Handle events
事件参考

Synthesizing events

在合成和发送自定义事件之前,应了解 UI 工具包事件系统如何分配和发送操作系统事件。

事件系统使用事件池来避免重复分配事件对象。要合成和发送自定义事件,应按照相同的步骤分配和发送事件:

  1. 从事件池中获取一个事件对象。
  2. 填写事件属性。
  3. 将事件包含在 using 代码块中以确保其返回到事件池。
  4. 将事件传递给 element.SendEvent()

如果要发送通常来自操作系统的事件,例如键盘事件和一些鼠标事件,请使用 UnityEngine.Event 来初始化 UI 工具包事件。

以下示例演示了如何合成和发送事件:

void SynthesizeAndSendKeyDownEvent(IPanel panel, KeyCode code,
     char character = '\0', EventModifiers modifiers = EventModifiers.None)
{
    // 创建 UnityEngine.Event 以保存初始化数据。
    // 此外,此事件将转发给 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);
    }
}


  • 2018–11–02 页面已修订
Handle events
事件参考
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961