facebook twitter hatena line email

「Unity/Csharp/キー入力/Input」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「フレームレートごとに入力受付する。 高速入力時には入力抜けが発生する恐れがある。 Unity/Csharp/キー入力/Event [ショート...」)
 
(キー入力判定)
 
(同じ利用者による、間の1版が非表示)
行7: 行7:
  
 
==キー入力判定==
 
==キー入力判定==
if (Input.GetKey(KeyCode.Space)) {
+
<pre>
}
+
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);
 +
</pre>
  
 
キー種類
 
キー種類

2022年1月5日 (水) 02:24時点における最新版

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

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 ();
        }
    }
}