キーボード操作とゲームパッド操作、どちらを先に実装するかで開発の進め方が変わります。
PC向けゲームでは、多くのプレイヤーがXboxコントローラーやSwitch Proコンを使います。
Unityなら、旧Input ManagerのInput.GetAxisとInput.GetButtonで、比較的少ないコードからパッド対応を始められます。
この記事では、パッド接続の確認からスティック・ボタン入力、キーボードとの併用までを解説します。
- コントローラーを接続しても反応しない…
- スティックの軸名が分からず動かない。
- キーボードとパッドの両方に対応する方法が不明。
✨ この記事でわかること
- ゲームパッドが認識されているか確認する方法
- 左スティックで移動するInput.GetAxisの書き方
- ボタン入力(ジャンプ・決定)の実装
- キーボードとパッドを併用する設計のコツ
- 初心者でも理解できる解説
\プログラミング未経験でも大丈夫!まずは1本作り切ろう/
初心者が最初に選ぶならコレ
Unity ノンフィールドRPG
+スレスパ風JRPG講座
Unity6対応・スマホ化対応の最新カリキュラム。「何から始めればいいかわからない」という初心者でも、ステップごとに手を動かすだけでRPGが完成します。
憧れのアクションゲームに挑戦
Unity 2Dアクションゲーム
の作り方講座(ロックマン風)
初心者でもロックマン風の横スクロールACTが作れる講座。7ステージ+ラスボスという本格構成で、スマホ化・広告実装まで対応。「自分のゲームをリリースしたい」夢を叶えます。
3Dゲーム開発の入口はここ
ゼルダ風3Dアクションゲーム
の作り方講座
「3Dゲームって難しそう…」と感じている初心者向けの講座。全16回でゼルダ風3Dアクションがスマホ対応で作れるようになります。3D開発の基礎がしっかり身につきます。
ゲームパッドとキーボード入力の違い
キーボードはキー単位でON/OFFですが、ゲームパッドはアナログスティックのように連続した値を返します。
そのため、移動にはGetAxis、ジャンプや決定にはGetButtonを使うのが一般的です。
| 入力種別 | 主なAPI | 返る値の例 |
|---|---|---|
| 左スティック左右 | Input.GetAxis(“Horizontal”) | -1.0〜1.0の連続値 |
| 左スティック上下 | Input.GetAxis(“Vertical”) | -1.0〜1.0の連続値 |
| Aボタン(ジャンプ等) | Input.GetButtonDown(“Jump”) | 押した瞬間だけtrue |
| スタートボタン | Input.GetButtonDown(“Submit”) | UI決定やポーズに使える |
軸名やボタン名は、Edit → Project Settings → Input Managerで確認・追加できます。
パッド接続を確認する
まずはコントローラーがUnityに認識されているかを確かめましょう。
接続した状態でPlayモードに入り、Input.GetJoystickNamesで名前が返るか確認する方法が手軽です。
void Start
{
string[] joysticks = Input.GetJoystickNames;
for (int i = 0; i < joysticks.Length; i++)
{
Debug.Log("接続デバイス " + i + ": " + joysticks[i]);
}
}
名前が空のままなら、USB接続やBluetoothペアリング、ドライバの状態を見直してください。
無線アダプタ経由の場合は、一度エディタを再起動すると認識されることもあります。
スティックでキャラを動かす
移動処理は、キーボードと同じGetAxisを使えばパッドにも自動対応します。
void Update
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 move = new Vector3(h, 0f, v);
transform.Translate(move * speed * Time.deltaTime);
}
Input ManagerのHorizontalとVerticalには、デフォルトでキーボードとジョイスティックの両方が割り当てられています。
斜め移動が速くなる場合は、move.normalizedを使って速度を揃えると自然です。

スティックに遊び(デッドゾーン)を設けたいときは、Mathf.Abs(value)が0.1未満なら0にする処理を足すと、微細なブレが減りますよ。
ボタン入力でジャンプや決定を処理する
ジャンプはJumpボタン、メニュー決定はSubmitボタンが定番の割り当てです。
void Update
{
if (Input.GetButtonDown("Jump"))
{
// ジャンプ処理
}
if (Input.GetButtonDown("Submit"))
{
// 決定・ポーズなど
}
}
機種によってボタン配置が違うので、UIに「このボタンでジャンプ」と表示しておくと親切ですね。
キーボードとパッドの併用設計
同じGetAxisとGetButtonを使えば、わざわざ分岐しなくても両方に対応できます。
ただし、UI操作だけキーボードに限定していると、パッドユーザーが困ることがあります。
- 移動・ジャンプはGetAxis/GetButtonで統一する
- UIはEventSystemのInput Moduleをパッド対応にする
- 設定画面でキー割り当てを変えられるようにする(発展)
- STEP1Input Managerを確認
Horizontal・Vertical・Jumpにジョイスティックが割り当て済みか確認します。
- STEP2移動コードを書く
GetAxisで移動し、実機コントローラーで動作を確認します。
- STEP3ボタン処理を追加
JumpやSubmitにアクションを割り当て、UI操作も試します。
右スティックでカメラを回す
3Dアクションでは、右スティックでカメラを回す設定がよく使われます。
Input Managerに「RightStickHorizontal」などの軸を追加するか、新Input SystemでrightStickを読む方法があります。
void Update
{
float lookX = Input.GetAxis("RightStickHorizontal");
float lookY = Input.GetAxis("RightStickVertical");
transform.Rotate(Vector3.up, lookX * rotateSpeed * Time.deltaTime);
transform.Rotate(Vector3.right, -lookY * rotateSpeed * Time.deltaTime);
}
旧Input Managerでは軸を手動追加する必要がありますが、左スティック移動と同じ考え方で設定できます。
新Input Systemでのゲームパッド
新Input Systemでは、Gamepad.current.leftStick.ReadValueのようにデバイスを直接参照します。
145で新旧を比較したうえで、複数機種のボタン差を吸収したい場合は新Input Systemへの移行を検討する価値があります。

Switch ProコンとXboxパッドでボタン名が違って困ったら、Input Actionsアセットで論理ボタン(Jump・Attack)にまとめるのが近道です。
パッドの振動(Haptic)やスピーカー出力は、Input Systemの拡張機能として後から足せます。
まずは移動とジャンプの2操作を安定させ、UI操作まで対応できれば、PC向けゲームの操作基盤は十分と言えます。
複数プレイヤー用のジョイスティック番号
ローカルマルチプレイでは、Input.GetJoystickNamesのインデックスで1P・2Pを分けます。
Input.GetAxisRaw(“Horizontal”)の代わりに、Joystick2の軸をInput Managerに追加して割り当てる方法が一般的です。
オンライン対戦では入力デバイスではなくネットワーク経由の操作になるため、別設計が必要になります。
まず1人プレイでパッド操作を完成させ、ローカル対戦はその後に足す流れが安全です。
記事を読んで「作ってみたい!」と思ったら!初心者でも1本完成できる講座で実力をつけよう
知識を読むだけで終わらせるのはもったいない。実際に手を動かしてゲームを1本完成させることで、理解が一気に深まります。プログラミング未経験からでも取り組める講座で、ゲーム開発の第一歩を踏み出しましょう。
Unity ノンフィールドRPG+スレスパ風JRPG講座【Unity6対応!初心者でもデッキ構築×JRPGをスマホ向けに作れる!】

- Unity6対応・スマホ化対応で最新環境のゲーム開発が学べる
- Slay the Spire風のデッキ構築システム×JRPGの組み合わせを実装
- 初心者でも迷わず進められる丁寧な解説構成
- ノンフィールドRPGとデッキ構築JRPGの2つをまとめて学べるセット講座
Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座は、プログラミング未経験の初心者でも取り組みやすい、ステップバイステップ形式の講座です。
Unity6対応・スマホ化対応の最新カリキュラムで、読んで「なるほど」と思った知識を、実際に動くゲームとして形にする体験ができます。
「何から始めればいいかわからない…」という初心者が最初に選ぶ一本として最適な講座です。
Unity6対応・スマホ化対応の最新カリキュラム
ゼロからでもRPGを完成させよう
→ スレスパ風デッキ構築JRPG講座を見てみる
初心者でもスマホ対応のRPGが作れる!まずは1本完成を目指そう!
Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!初心者でもスマホ化・広告実装まで対応した本格横スクロールACTが作れる!】

- ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
- 7ステージ+ラスボスステージの本格的なゲーム設計を初心者でも実現
- スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
- 敵AI15体・多彩なマップギミック・武器システムを完全実装
- 完全オリジナルゲームをアセット不使用で素材提供付きで制作
Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを、初心者でもゼロから開発できるようになる講座です。
全16回で当たり判定・物理挙動・敵AIの知識を実際のゲームコードとして実装する体験が詰め込まれています。スマホ化・広告実装まで対応しているため、「作って終わり」ではなくリリースまで見据えた実践スキルが身につきます。
「憧れのアクションゲームを自分の手で作ってみたい」という初心者に強くおすすめの一本です。
スマホ化・広告実装まで対応した本格横スクロールACT
初心者でもロックマン風2Dアクションをリリースまで作り上げよう
→ 2Dアクションゲームの作り方講座を見てみる
初心者でも本格ACTが完成する!広告収益まで視野に入れた実践スキルを手に入れよう!
ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

- ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
- 「3Dは難しそう」と感じている初心者でも取り組みやすい丁寧な解説構成
- スマホ化対応で実機で動かせるゲームが完成
- アセットを使った実践的なゲーム開発手法が身につく
- 画像・動画・全ソースコード公開の充実したサポート
ゼルダ風3Dアクションゲームの作り方講座は、「3Dゲームは難しそう…」と感じている初心者こそおすすめの入門講座です。
全16回の丁寧な解説で、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを確実に完成まで導きます。スマホ化対応で実機で動かせるため、初めて3Dゲームを作り上げた達成感がひときわ大きい講座です。
「3Dゲームを自分でも作れるか試してみたい」という初心者の最初の一歩として最適です。
初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の壁を一気に突破しよう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
全16回でスマホで動くオリジナル3Dゲームを完成させよう!
まとめ
ゲームパッド対応は、Input.GetAxisでスティック移動、Input.GetButtonでボタン操作を読むのが基本です。
Input Managerの設定を確認し、接続テストから始めれば、キーボードとパッドの両方に対応した操作が作れます。
右スティックのカメラ操作やローカル対戦は、基本操作が安定してから足していきましょう。
入力設計を体系的に学びたい方は、Unity入門の森の教材も参考にしてみてください。
アクションゲームの操作設計を段階的に学べるカリキュラムも用意されています。
まずは手元のパッドで動作確認から始めてください。



コメント