Version: Unity 6.0 (6000.0)
言語 : 日本語
ディスパッチイベント
イベントコールバックと値の変更の処理

マニピュレーターによるポインターのキャプチャ

ポインター入力を処理する場合は、コントロールでポインターをキャプチャすることが必要になる可能性があります。ビジュアル要素がポインターをキャプチャすると、Unity は、ポインターがビジュアル要素の上にマウスオーバーしたかどうかに関係なく、ポインターに関連するすべてのイベントをビジュアル要素に送信します。例えば、ドラッグイベントを受信してポインターをキャプチャするコントロールを作成しても、コントロールはポインターの位置に関係なく引き続きドラッグイベントを受信します。

Manipulator クラスには、ポインターをキャプチャするための簡便な方法が用意されています。Manipulator クラスは、すべてのマニピュレーターの基本クラスです。マニピュレーターは、ポインター入力を処理し、ビジュアル要素にイベントを送信するクラスです。例えば、Clickable クラスは、ユーザーがビジュアル要素をクリックしたときに PointerDownEvent を送信するマニピュレーターです。PointerDownEvent の後、一部の要素では、カーソルが要素の上に乗っていなくても、その後のすべてのポインターイベントを受け取ることができるよう、ポインター位置を捉える必要があります。例えば、ボタンやスライダー、スクロールバーをクリックした場合が該当します。

ポインターをキャプチャするには、PointerCaptureHelper.CapturePointer を呼び出します。

ポインターをリリースするには、PointerCaptureHelper.ReleasePointer を呼び出します。CapturePointer() の呼び出し時に他の要素がすでにポインターをキャプチャしている場合、対象の要素は PointerCaptureOutEvent イベントを受け取り、キャプチャしなくなります。

任意の時点で、アプリケーションの 1 つの要素のみがキャプチャできます。要素はキャプチャできますが、マウスポインターイベントを除くすべての後続のマウスイベントのターゲットにもなります。これは、まだターゲットが設定されていないポインターイベントにのみ適用され、ターゲットの決定はディスパッチプロセスに依存します。

詳細については、キャプチャイベントを参照してください。

追加リソース

ディスパッチイベント
イベントコールバックと値の変更の処理