Version: 2019.1
イベントへの応答
イベントタイプリファレンス

イベントの統合

カスタムイベントを統合して送信する前に、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))
    {
        panel.SendEvent(keyDownEvent);
    }
}


イベントへの応答
イベントタイプリファレンス