キーボード入力
これは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を経由する「自キャラを動かす」を使うほうがよさそうです。