トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

unity_input_keyboard

キーボード入力

これはPCだけのコマンドになります。android/iOSでは無効。
「Main Camera」として配置したGameObjectをW/S/A/Dで移動させる例です。

public class TestScript : MonoBehaviour {
  private GameObject m_char1;
  void Start () {
    m_char1 = GameObject.Find("char1");  // char1のGameObjectを呼び出し.
  }

  void Update () {
    Vector3 v = m_char1.transform.localPosition;
    if (Input.GetKey(KeyCode.W)) {   // Wキーで前進.
        v.z += 0.05f;
    }
    if (Input.GetKey(KeyCode.S)) {   // Sキーで後退.
        v.z -= 0.05f;
    }
    if (Input.GetKey(KeyCode.A)) {  // Aキーで左移動.
        v.x -= 0.05f;
    }
    if (Input.GetKey(KeyCode.D)) {  // Dキーで右移動.
        v.x += 0.05f;
    }
    m_char1.transform.localPosition = v;
 }
}

Update関数で「Input.GetKey(KeyCode.W)」とすると、「W」キーが押されている場合はtrueが返されます。

他のキーコードとしては以下のようなものがあります。
キーコード キー名
KeyCode.Escape ESC
KeyCode.Space スペース
KeyCode.LeftShift Shift(左)
KeyCode.RightShift Shift(右)
KeyCode.Return Enter
KeyCode.LeftArrow
KeyCode.RightArrow
KeyCode.UpArrow
KeyCode.DownArrow

これらのキー入力はキーダウンでの即時反応になります。

できるだけ直接キー入力を判断するのではなく、InputManagerを経由する「自キャラを動かす」を使うほうがよさそうです。