Keyboardクラスの使い方

2021年10月9日

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

Keyboardクラス

UnityEngine.InputSystem.Keyboardクラスは、キーボードの状態を管理するクラスです。このクラスを使用することで、キーの入力を取得できます。

使い方

インスタンスを取得する

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

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

キーの状態

各キーの状態を取得するには、「〇〇Keyという名前のプロパティ」または「添え字演算子」を使用します。

// プロパティでアクセス
Keyboard.current.aKey
Keyboard.current.digit0Key
Keyboard.current.spaceKey

// 添え字演算子でアクセス
Keyboard.current[ Key.A ]
Keyboard.current[ Key.Digit0 ]
Keyboard.current[ Key.Space ]

押しているか判別する

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

if ( Keyboard.current.aKey.isPressed ) 
{
    Debug.Log( "Aキーを押しています。" );
}

押したか判別する

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

if ( Keyboard.current.aKey.wasPressedThisFrame ) 
{
    Debug.Log( "Aキーを押しました。" );
}

離したか判別する

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

if ( Keyboard.current.aKey.wasReleasedThisFrame ) 
{
    Debug.Log( "Aキーを離しました。" );
}

文字の入力を取得する

文字の入力は、onTextInputイベントに任意のハンドラを追加することで取得できます。

Keyboard.current.onTextInput += ( character ) => 
{
    Debug.Log( "「" + character + "」が入力されました。" );
};

参考ページ