初心者必見!現場レベルの「ゲーム制作講座PDF」を無料プレゼント中!▶

Unityでゲームパッド対応 | コントローラー入力の基本

Unity 入門・始め方

キーボード操作とゲームパッド操作、どちらを先に実装するかで開発の進め方が変わります。

PC向けゲームでは、多くのプレイヤーがXboxコントローラーやSwitch Proコンを使います。

Unityなら、旧Input ManagerのInput.GetAxisとInput.GetButtonで、比較的少ないコードからパッド対応を始められます。

この記事では、パッド接続の確認からスティック・ボタン入力、キーボードとの併用までを解説します。

  • コントローラーを接続しても反応しない…
  • スティックの軸名が分からず動かない。
  • キーボードとパッドの両方に対応する方法が不明。

✨ この記事でわかること

  • ゲームパッドが認識されているか確認する方法
  • 左スティックで移動するInput.GetAxisの書き方
  • ボタン入力(ジャンプ・決定)の実装
  • キーボードとパッドを併用する設計のコツ
  • 初心者でも理解できる解説

\プログラミング未経験でも大丈夫!まずは1本作り切ろう/

初心者が最初に選ぶならコレ

Unity ノンフィールドRPG
+スレスパ風JRPG講座

★★★★★ (Unity6対応)

Unity6対応・スマホ化対応の最新カリキュラム。「何から始めればいいかわからない」という初心者でも、ステップごとに手を動かすだけでRPGが完成します。

講座を見てみる \ゼロからでもスマホ対応RPGが作れる!/

憧れのアクションゲームに挑戦

Unity 2Dアクションゲーム
の作り方講座(ロックマン風)

★★★★★ (スマホ化・広告実装)

初心者でもロックマン風の横スクロールACTが作れる講座。7ステージ+ラスボスという本格構成で、スマホ化・広告実装まで対応。「自分のゲームをリリースしたい」夢を叶えます。

講座を見てみる \初心者でも本格ACTが完成する!/

3Dゲーム開発の入口はここ

ゼルダ風3Dアクションゲーム
の作り方講座

★★★★★ (スマホ化対応)

「3Dゲームって難しそう…」と感じている初心者向けの講座。全16回でゼルダ風3Dアクションがスマホ対応で作れるようになります。3D開発の基礎がしっかり身につきます。

講座を見てみる \初心者でも全16回で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をパッド対応にする
  • 設定画面でキー割り当てを変えられるようにする(発展)
ゲームパッド対応の実装手順
  • STEP1
    Input 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をスマホ向けに作れる!】

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築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が作れる!】

Unity 2Dアクションゲームの作り方講座(ロックマン風)

  • ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
  • 7ステージ+ラスボスステージの本格的なゲーム設計を初心者でも実現
  • スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
  • 敵AI15体・多彩なマップギミック・武器システムを完全実装
  • 完全オリジナルゲームをアセット不使用で素材提供付きで制作

Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを、初心者でもゼロから開発できるようになる講座です。

全16回で当たり判定・物理挙動・敵AIの知識を実際のゲームコードとして実装する体験が詰め込まれています。スマホ化・広告実装まで対応しているため、「作って終わり」ではなくリリースまで見据えた実践スキルが身につきます。

「憧れのアクションゲームを自分の手で作ってみたい」という初心者に強くおすすめの一本です。

スマホ化・広告実装まで対応した本格横スクロールACT
初心者でもロックマン風2Dアクションをリリースまで作り上げよう
→ 2Dアクションゲームの作り方講座を見てみる
初心者でも本格ACTが完成する!広告収益まで視野に入れた実践スキルを手に入れよう!

ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

ゼルダ風3Dアクションゲームの作り方講座

  • ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
  • 「3Dは難しそう」と感じている初心者でも取り組みやすい丁寧な解説構成
  • スマホ化対応で実機で動かせるゲームが完成
  • アセットを使った実践的なゲーム開発手法が身につく
  • 画像・動画・全ソースコード公開の充実したサポート

ゼルダ風3Dアクションゲームの作り方講座は、「3Dゲームは難しそう…」と感じている初心者こそおすすめの入門講座です。

全16回の丁寧な解説で、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを確実に完成まで導きます。スマホ化対応で実機で動かせるため、初めて3Dゲームを作り上げた達成感がひときわ大きい講座です。

「3Dゲームを自分でも作れるか試してみたい」という初心者の最初の一歩として最適です。

初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の壁を一気に突破しよう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
全16回でスマホで動くオリジナル3Dゲームを完成させよう!

まとめ

ゲームパッド対応は、Input.GetAxisでスティック移動、Input.GetButtonでボタン操作を読むのが基本です。

Input Managerの設定を確認し、接続テストから始めれば、キーボードとパッドの両方に対応した操作が作れます。

右スティックのカメラ操作やローカル対戦は、基本操作が安定してから足していきましょう。

入力設計を体系的に学びたい方は、Unity入門の森の教材も参考にしてみてください。

アクションゲームの操作設計を段階的に学べるカリキュラムも用意されています。

まずは手元のパッドで動作確認から始めてください。

コメント

タイトルとURLをコピーしました