概要
ゲームとプレイヤーを繋ぐ最も重要なインターフェースが「入力」です。キーボードのキーが押されたこと、マウスがクリックされたこと、ゲームパッドのスティックが倒されたことを検知して、キャラクターを動かしたり、アクションを実行したりします。Unityには、これらの入力を簡単に扱うための仕組みが用意されています。
この記事では、Unityで古くから使われている標準のInput Managerを使った入力処理の方法を中心に、キーボード、マウス、そしてゲームパッドからの入力を受け取る具体的な方法を解説します。また、より高度で柔軟な入力管理を可能にする新しいInput Systemパッケージについても触れます。
Input Managerの基本
Unityの標準入力システムであるInput Managerは、Edit > Project Settings > Input Managerから設定を確認・変更できます。ここには、Horizontal, Vertical, Jump, Fire1といった、予め定義された「仮想軸(Virtual Axes)」がリストされています。
例えば、Horizontal軸には、キーボードのaとd、そして左右の矢印キーが割り当てられています。これにより、Input.GetAxis("Horizontal")という一つの命令で、これらのどのキーが押されても対応できるようになっています。この抽象化された軸を使うことで、プレイヤーがキーバインドを自由に変更できるような設定画面も作りやすくなります。
キーボード入力の取得
キーボードからの入力は、Inputクラスの様々なメソッドを使って取得します。
| メソッド | 説明 |
|---|---|
Input.GetKeyDown(KeyCode) | 指定したキーが押された瞬間にtrueを返す。ジャンプや射撃など、単発のアクションに最適。 |
Input.GetKey(KeyCode) | 指定したキーが押されている間、ずっとtrue |