こんにちは、今日はUnityでキー入力を取得する方法についてまとめていきます。
Table of Contents
確認環境
Unity 2018.4.15f1
キー入力の取得
https://docs.unity3d.com/ja/current/ScriptReference/Input.html
キー入力の取得にはUnityEngine.Inputクラスに定義されている関数を使用します。
以下の例ではスペースキー入力時にConsoleウィンドウにログが出力されます。
キーが押されたフレーム
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("GetKeyDown Space");
}
キーが押されている間
if (Input.GetKey(KeyCode.Space))
{
Debug.Log("GetKey Space");
}
キーが離されたフレーム
if (Input.GetKeyUp(KeyCode.Space))
{
Debug.Log("GetKeyUp Space");
}
KeyCode.Spaceを別のキーに変更することで他のキーの入力も取得可能です。
また、以下のようにKeyCodeの値ではなく文字列での指定も可能です。
if (Input.GetKey("space"))
{
Debug.Log("GetKey Space");
}
仮装ボタン入力
Edit > Project Settings > Input からキーやボタンの対応を設定し名前を付け、その名前から入力の判定を行うこともできます。
以下の例では最初から定義されている”Jump”ボタンの判定を行なっています。
”Jump”ボタンはスペースキーに設定されているため、スペースキー入力の判定を行えます。
ボタンが押されたフレーム
if (Input.GetButtonDown("Jump"))
{
Debug.Log("GetButtonDown Jump");
}
ボタンが押されている間
if (Input.GetButton("Jump"))
{
Debug.Log("GetButton Jump");
}
ボタンが離されたフレーム
if (Input.GetButtonUp("Jump"))
{
Debug.Log("GetButtonUp Jump");
}
設定できるプロパティーの説明については以下のページに記載されています。
https://docs.unity3d.com/ja/2018.4/Manual/ConventionalGameInput.html