事件响应
事件类型参考

合成事件

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

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

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

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

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

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))
    {
        UIElementsUtility.eventDispatcher.DispatchEvent(keyDownEvent, panel);
    }
}


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