マウスのサポート
Input System では、Mouse
クラスに実装されている Mouse
Device レイアウトを使用してマウス入力が表されます。マウスは、Pointer
レイアウトに基づいています。
最後に使用されたマウス、または最後に加えられたマウスを照会するには、Mouse.current
を使用します。
var mouse = Mouse.current;
ノート: Input System では、以下の機能は現在サポートされていません。
- プラットフォームレベルでの複数のマウスからの入力。
- 現在マウスのあるディスプレイの識別。
コントロール
Mouse デバイスには、Pointer
から継承された Control に加えて、以下の Control が実装されています。
Control | 型 | 説明 |
---|---|---|
leftButton |
ButtonControl |
左マウスボタン。継承された Pointer.press と同じです。 |
rightButton |
ButtonControl |
右マウスボタン。 |
middleButton |
ButtonControl |
中央マウスボタン。 |
forwardButton |
ButtonControl |
他のマウスボタンがある場合に使用されます。 |
backButton |
ButtonControl |
他のマウスボタンがある場合に使用されます。 |
clickCount |
IntegerControl |
OS から報告された、最後のマウスクリックが含まれる連続クリックの数を読み取る Control。これを使用して、ダブルクリックとマルチクリックを区別します。 |
scroll |
Vector2Control |
マウスのスクロールコントロールからの入力を、最後のフレームからのピクセル単位の差分として表します。物理的なスクロールホイールから生じる場合と、タッチパッドのジェスチャから生じる場合があります。 |
カーソルの移動
デスクトッププラットフォーム (Windows、Mac、Linux、UWP) では、マウスカーソルをコードで移動することができます。ただし、Unity の内部に格納されているマウス位置だけでなく、システムの実際のマウスカーソルも移動することに注意が必要です。これは、ユーザーには、カーソルが別の位置にジャンプしたように見えるため、通常は不適切な UX の例と見なされます。この方法を使用するのは、カーソルが非表示になっている場合のみにすることを推奨します (詳細については、Cursor
の API ドキュメント を参照してください)。
カーソルを別の場所に移動するには、Mouse.WarpCursorPosition
を使用します。Mouse.position
と同様に、Unity のスクリーン座標で座標が表されます。
Mouse.current.WarpCursorPosition(new Vector2(123, 234));
ノート: カーソルがロックされている場合は、マウス位置の移動が一時的な動作となり、Unity によってフレームごとにウィンドウの中央にリセットされます。