Mouseクラスの使い方

2021年10月14日

この記事では、UnityでInputSystemのMouseクラスを使用する方法について説明します。

Mouseクラス

UnityEngine.InputSystem.Mouseクラスは、マウスの状態を管理するクラスです。このクラスを使用することで、マウスの入力を取得できます。

使い方

インスタンスを取得する

Mouseクラスのインスタンスは、current静的プロパティで取得できます。

if ( Mouse.current != null ) 
{
    // ここでcurrentを使用
}

ボタンの状態

各ボタンの状態を取得するには、「〇〇Buttonという名前のプロパティ」を使用します。

Mouse.current.leftButton
Mouse.current.middleButton
Mouse.current.rightButton

押しているか判別する

ボタンを押しているか判別する値は、isPressedプロパティで取得できます。

if ( Mouse.current.leftButton.isPressed ) 
{
    Debug.Log( "左ボタンを押しています。" );
}

押したか判別する

ボタンを押したか判別する値は、wasPressedThisFrameプロパティで取得できます。

if ( Mouse.current.leftButton.wasPressedThisFrame ) 
{
    Debug.Log( "左ボタンを押しました。" );
}

離したか判別する

ボタンを離したか判別する値は、wasReleasedThisFrameプロパティで取得できます。

if ( Mouse.current.leftButton.wasReleasedThisFrame ) 
{
    Debug.Log( "左ボタンを離しました。" );
}

連続クリック数を取得する

( 左ボタンの )連続クリック数は、clickCountプロパティのReadValue関数で取得できます。

if ( Mouse.current.leftButton.wasPressedThisFrame ) 
{
    Debug.Log( "連続クリック数: " + Mouse.current.clickCount.ReadValue() );
}

カーソルの座標を取得する

カーソルの座標は、positionプロパティのReadValue関数で取得できます。この座標の原点は、画面の左下になります。

if ( Mouse.current.leftButton.wasPressedThisFrame ) 
{
    Debug.Log( "カーソルの座標: " + Mouse.current.position.ReadValue() );
}

ホイールのスクロール量を取得する

ホイールをスクロールした( 回転した )量は、scrollプロパティのReadValue関数で取得できます。

var scroll_amount = Mouse.current.scroll.ReadValue();

if ( scroll_amount.magnitude > 0 ) 
{
    Debug.Log( "スクロール量: " + scroll_amount );
}

参考ぺージ