UDN
Search public documentation:

UIOverlayWidgetsJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Unreal UI オーバーレイ ウィジェット

ドキュメントの概要 : ツールチップおよびコンテクストメニューなどのオーバーレイウィジェットの解説。

ドキュメントの変更ログ: Preston Thorne により UI オーバーレイ ウィジェット情報追加。

ツールチップ:

UIObject は、 ToolTip データ格納バインディングがあります。 このバインディングは、ウィジェットでさまよっている場合(通常、loc 文字列にバインドされます)は、ウィジェットのツールのヒントに何が表示されるかを制御します。デフォルトの挙動で、各シーン(一度に1 つのツールチップが表示されることから)用の単独のツールチップ ウィジェットがあります。 ウィジェットでマウスを動かすと、ウィジェットは、 ToolTip データ格納バインディングをシーンのグローバル ツールチップブジェクトとツールチップの遅延タイマーにコピーします。 OnQueryToolTip デリゲートを処理することで、カスタムツールチップを提供することができますが、もしそうする場合は、  UIObject::ActivateToolTip 内のステップすべてをご自身で行う必要があります。

関連メソッド:

  • GameUISceneClient.CanShowToolTips – これが false に返すと、ツールチップが表示されません。
  • UIObject::ActivateToolTip - widget の ToolTip? バインディングをシーンのデフォルトツールチップにプロパゲートします。
  • UIObject.delegateOnQueryToolTip – 独自のウェジェット用に、カスタムツールチップブジェクトを提供することができます。
  • UIToolTip.delegateActivateToolTip() - ウェジェットの境界にマウスが入ったとたんに呼び出されます。 希望であれば、ツールチップが表示されるのを防ぐことができます。デフォルトでは、多少の遅延後にツールチップの表示用のタイマーが開始されるようになっています。 ここで、ツールチップのデータバインディングを動的に設定します。
  • UIToolTip.delegateDeactivateToolTip() - シーンの ActiveControl が変更されると呼び出されます。 ツールチップが非表示になるのを防ぎます。 デフォルトでは、ツールチップが非表示になるようになっています。

関連 変数:

  • GameUISceneClient.bDisableToolTips - グローバルにツールチップを無効にします。 この値は、 CanShowToolTips によりチェックされます。
  • UIInteraction.ToolTipInitialDealySeconds – ツールチップが表示されるまえに、マウスがウィジェットの境界に立ち入った後、何秒過ぎるかを制御します。
  • UIInteraction.ToolTipExpirationSeconds - ツールチップが消える前 (例 ウィジェット上で移動後に、マウスを移動しない場合)に何秒かかるかを制御する。

フロー

シーンの ActiveControlSetActiveControl() で変更されると、 新しい ActiveControlActivateToolTip が呼び出されます。 UIObject.ActivateToolTip() はまず、スクリプトがデフォルト挙動をオーバーライドする機会を与えるよう OnQueryToolTip デリゲートを呼び出します。 OnQueryToolTip が FALSE に返し、ウィジェットの ToolTip バインディングが有効の場合は、シーンのグローバル ツールチップ ウィジェットがアクティブ化 (例: 初期遅延秒タイマーがアクティブにされる) され、 シーンのデフォルト ツールチップ ウィジェットにバインディングしている=ActiveControl= の ツールチップ リンクに=UIToolTip::LinkBinding= が呼び出されます。 各フレーム、ツールチップ ウィジェットは、 UGameUISceneClient::Tick() によりティックされます。 =ToolTipInitialDelaySeconds が渡されると、 ツールチップは、フォーマット、配置、表示をします。 シーンクライアントは、ツールチップの各フレームのティックを継続します。 ToolTipExpirationSeconds が渡されると、ツールチップは非表示になります。

コンテクスト メニュー:

UIObject は、コンテクスト メニュー データ バインディングを持ちます。 このバインディングは、コンテクスト メニューの項目が由来するかどうかを定義します。また、コンテクスト メニューが表示される前に、unrealscript でコンテクスト メニューに手動で項目を追加したり削除したりできます。アクティブな制御がコンテクスト メニューをサポートしない場合は、親チェーンにある各ウィジェットに、コンテクスト メニューを提供できる可能性が与えられます。

関連メソッド:

  • UIObject ::ActivateContextMenu - ウィジェットの ContextMenu データ バインディングをシーンのグローバルコンテクスト メニューにプロパゲートし、コンテクスト メニューを開きます。
  • UIObject.delegateOnOpenContextMenu - ウィジェットのコンテクスト メニューを提供できるようにします。 ここで、unrealscript にある項目を追加/削除などをします。
  • =UIObject.delegateOnCloseContextMenu - UI システムがカレントでアクティブコンテクスト メニューを閉じたい時に呼び出されます。 オーバーライドしたり、テクスト メニューが閉じられるのを防ぐことができるようにします。
  • UIObject.delegateOnContextMenuSelected - ユーザーがコンテクスト メニューにある項目をクリックしたり、選択した時に呼び出されます。ここで、選択した行為のロジックを実行します。
  • UIContextMenu::Open - コンテクスト メニュー(コンテクスト メニューが表示される位置を演算したり、コンテクスト メニューのリストを投入したり、メニューにフォーカスを設定したりなど)を表示するために必要なステップすべてを実行します。
  • UIContextMenu::Close - コンテクスト メニューを閉じるために必要なステップすべてを実行したり、シーンを通常モードに戻します (以前にフォーカスした制御へのフォーカスの復元、コンテクスト メニューの非表示、など)。
  • UIContextMenu? スクリプト メソッド – 手動で追加、削除したり、unrealscript から C++ からコンテクスト メニューを入手することを可能にするメソッド。

関連変数:

  • UIObject.ContextMenu – コンテクスト メニューの項目を提供するデータ バインディング プロパティ。スクリプトから動的にコンテクスト メニューをビルドする場合は、 書き込む必要はありません。

フロー

UIObject ::ProcessInputKey= が右マウスボタン発動イベントを受けると、有効なコンテクスト メニュー参照を入手するため、=ActivateContextMenu= が呼び出されます。ウィジェットがコンテクスト メニューをサポートしない場合は、呼び出しは 親階層に親ウィジェットがコンテクスト メニューを提供できるように 渡されます。 ActivateContextMenu は、最初にスクリプトがコンテクストメニューを提供できるよう OnOpenContextMenu デリゲートを呼び出します(スクリプトは、シーンのデフォルトコンテクスト メニューを使用するオプションがありますが、この項目を手動でスクリプトに追加します。参考に =UIButton をご覧ください)。 有効なコンテクスト メニューが返されると、 ActivateContextMenu は、コンテクスト メニューの 「Open」を呼び出します。 UIContextMenu::Open は、カレントのマウス位置とその時点のコンテクスト メニューを取得します。 次にリストを投入し、手動でコンテクスト メニューが2番目のレンダリングフレームで異なる位置に入り込まないようにするため、リストのレンダリング境界を解決します。ユーザーが選択をすると、 unrealscript を通知するため=OnContextMenuSelected= デリゲートが呼び出され、次にコンテクスト メニューを非表示にするため Close() が呼び出され、 フォーカス/インプット制御を通常に戻します。