facebook twitter hatena line email

Unity/Csharp/キー入力/Input

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

フレームレートごとに入力受付する。 高速入力時には入力抜けが発生する恐れがある。

Unity/Csharp/キー入力/Event [ショートカット]

↑の入力イベントで取得する方が置い。

キー入力判定

if (Input.GetKey(KeyCode.Space)) {
}
if (Input.GetKey(KeyCode.LeftArrow))
{
	Debug.Log("hidari");
}
else if (Input.GetKey(KeyCode.RightArrow))
{
	Debug.Log("migi");
}
else if (Input.GetKey(KeyCode.UpArrow))
{
	Debug.Log("up");
}
else if (Input.GetKey(KeyCode.DownArrow))
{
	Debug.Log("down");
}
float v = Input.GetAxis("Vertical");
float h = Input.GetAxis("Horizontal");
Debug.Log("updown=" + v);
Debug.Log("rightleft=" + h);

キー種類

  • KeyCode.Space スペース
  • KeyCode.Return リターンキー
  • KeyCode.UpArrow 上矢印
  • KeyCode.DownArrow 上矢印
  • KeyCode.A a
  • KeyCode.B b
  • KeyCode.C c

キーの状態

  • Input.GetKey 押しっぱなし有効
  • Input.GetKeyDown 押した時
  • Input.GetKeyUp 離した時

何のキーを入力したか

using System;
	void Update () {
		DownKeyCheck ();
	}
	void DownKeyCheck(){
		if (Input.anyKeyDown) {
			foreach (KeyCode code in Enum.GetValues(typeof(KeyCode))) {
				if (Input.GetKeyDown (code)) {
					Debug.Log (code);
					break;
				}
			}
		}
	}

shiftで大文字入力判定

if (Input.anyKeyDown) {
    foreach (KeyCode code in Enum.GetValues(typeof(KeyCode))) {
        if (Input.GetKey (KeyCode.LeftShift) || Input.GetKey (KeyCode.LeftShift)) {
            return code.ToString ();
        } else {
            return code.ToString ().ToLower ();
        }
    }
}