Version: 2020.3
言語: 日本語
イベントの処理
イベントの参照

イベントの統合

カスタムイベントを統合して送信する前に、UI Toolkit のイベントシステムがオペレーティングシステムのイベントをどのように割り当てて送信するかを理解しておく必要があります。

イベントシステムはイベントオブジェクトの割り当ての繰り返しを避けるためにイベントのプールを使用します。イベントを統合して送信するには、以下の手順でイベントを割り当てて送信する必要があります。

  1. イベントのプールからイベントオブジェクトを取得します。
  2. イベントプロパティを入力します。
  3. イベントを using ブロックで囲み、イベントプールに確実に返却されるようにします。
  4. イベントを element.SendEvent() に渡します。

キーボードイベントやマウスイベントなど、オペレーティングシステムから来るイベントを送信したい場合は、UnityEngine.Event を使用して UI Toolkit イベントを初期化します。

次の例は、イベントを統合して送信する方法を示しています。

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 修正されたページ
イベントの処理
イベントの参照