【Unity】コントローラーの接続方法・操作方法まとめ

URLをコピーする
URLをコピーしました!

CGBoxの一部の記事にはアフィリエイト広告が含まれております。

こんにちは!Unityのゲームをコントローラーで操作できたらいいのに…と思ったことはありませんか?

実はUnityでは、PCゲームに使うコントローラーを使ってゲームを操作することができるんです!

本記事ではコントローラーの接続方法や操作方法を紹介していきます。

目次

コントローラーの接続方法

コントローラーを接続する方法を以下のような順番で解説していきます。

  1. コントローラーの接続確認をする
  2. InputManagerでボタンを割り当てる
  3. コントローラーで操作するスクリプト
  4. InputSystemで接続する

なお、今回はWindowsPCでの接続方法を解説していきます。

コントローラーの接続確認をする

まずはPCにコントローラーが接続できているかを確認しましょう。

スタートメニューから設定デバイスを選択します。

Bluetoothとその他のデバイス内に接続したゲームパッドが表示されていれば、このままUnityでも利用することができます。

ここにゲームパッドが表示されていない場合は以下の項目を確認して再接続してみましょう。

  • ドライバが正しくインストールされているか
  • USB接続が正しく行われているか
  • Windowsに対応したゲームパッドか
  • バッテリーが充電されているか

InputManagerでボタンを割り当てる

コントローラーが認識されたら、Unity内で使えるように連携させていきます。

EditProject Settingsを開きましょう。

ProjectSettings内のInputManagerを開きましょう。

ここからコントローラーに対応するボタンを割り当てていきます。

下のGIFのように、まずFire1となっている箇所をクリックして開きましょう。

開いたFile1内のPositiveButtonの箇所を書き換えます。

「joystick button 0」と入力しましょう。

このボタン0というのはコントローラーのAボタンに対応しています。

コントローラーのボタンそれぞれについては名称が決まっているので、後に紹介します。

これでコントローラーからのAボタンの入力を受け付ける準備ができました。

コントローラーで操作するスクリプト

コントローラーからの入力に応じて処理を行うスクリプトを用意してあげましょう。

Controllerというスクリプトを作成し以下のように記述しましょう。

InputManagerで設定したボタンが押されたら、コンソールに表示させるプログラムです。

CreateEmptyでゲームオブジェクトを作成し、名前をControllerManagerとでもしておきます。

先ほど作成したスクリプトをドラッグアンドドロップでControllerManagerにセットします。

プログラムを実行してコントローラーのAボタンを押すと、以下のようにコンソールに確かに表示されました。

実際のゲームに実装する時は、スクリプト内のDebug.Logの部分を移動や攻撃処理などに変えてあげましょう。

同様にして、方向キーや他のボタンなども対応させることでUnity内のゲームをコントローラーで動かすことができますね。

各ボタンの名称については以下の画像を参考にしてください。

引用元:【Unity】ゲームコントローラー(XInput/DualShock)による入力判定まとめ

InputSystemで接続する

ここまでInputManagerを使ってUnityでコントローラーを使う方法を紹介してきました。

コントローラーを使う新しい別の方法として、InputSystemというものもあります。

InputSystemは最近のゲームパッドに標準で対応していたり、バーチャルコントローラーを簡単に実装できるという利点があります。

このInputSystemについてはUnity公式のPackageManagerから無料で利用することができます。

InputSystemを使うには先ほどのようなInputManagerでボタンを割り当てる設定は必要ないですが、新たにスクリプトを作る必要があります。

詳しい使い方やスクリプトについては以下の公式の記事を参考にしてみてください。

Unity for Pro
Unityの新入力システム・Input Systemを使おう – Unity for Pro Unityの新しいInput Systemの使い方。これまでの入力システムとの違いや、なぜ新しい入力システムが必要なのかをはじめ、システムの全体像を重要なポイントを押さえつつ一...

コントローラーを複数認識させる方法

Unityでコントローラーを複数認識させて使うこともできます。

InputManagerのSizeから、コントローラによる入力数を増やすことができます。

この増やした入力数の分を、2個目のコントローラーに割り当てていくことで複数コントローラーによる操作が実装できます。

詳しい設定方法は下の記事が参考になります。

洋梨日記
Unityで複数コントローラーを使う方法 / マルチコントローラー | 洋梨日記🍐 どうも!洋梨🍐です。「Unityでコントローラーを使ったことはあるけれど、複数のコントローラーを使う方法はわからない!」「一台のパソコンで複数コントローラーを使って対...

コントローラーを振動させる方法

Unityでコントローラーを振動させることができます。

以下のようなメソッドが用意されており、これによりゲームパッドの左右のモーターを回転させて振動させることができます。

SetMotorSpeeds(1.0f, 0.0f);

ただし、このメソッドを使うためには前提としてInputSystemを導入している必要があります。

詳しい実装方法は下の記事が参考になります。

ねこじゃらシティ
【Unity】Input Systemでゲームパッドを振動させる Input System経由でゲームパッドを振動させる方法の解説です。 振動自体は以下のようなコードで簡単に指定できます。 例ではゲームパッドのデバイスを直接参照していますが...

コントローラーのおすすめアセット

InControl

あわせて読みたい
InControl | Input Management | Unity Asset Store Get the InControl package from Gallant Games and speed up your game development process. Find this & other Input Management options on the Unity Asset Store.

InControlはUnityでコントローラーを使う設定を手助けしてくれるアセットです。

Xbox360やPS4のコントローラーなどにも対応しています。

InputManagerから一つずつ設定するよりも効率よく設定することができますね。

Controller Overlays & Button Kits

あわせて読みたい
Controller Overlays & Button Kits (3 styles) x8 controllers +keyboard/mouse | 2D Icons | Unity Asset... Elevate your workflow with the Controller Overlays & Button Kits (3 styles) x8 controllers +keyboard/mouse asset from nickknacks. Browse more 2D GUI on the Unit...

Controller Overlays & Button KitsはコントローラーのPNG・PSD ファイルが入ったアセットです。

色々な種類のコントローラーに対応した画像が用意されています。

ゲーム内にコントローラーの操作説明などを表示させたい時に非常に役立つアセットです。

まとめ

以上、Unityでコントローラーを使う方法を解説してきました!

コントローラーの設定は複雑な部分もありますが、アセットなどを利用することで簡単に設定することもできます。

自作のゲームをコントローラーで遊べると感動します。

ぜひコントローラーを使いこなせるようになりたいですね!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Unityメインの個人開発者。UnityでAIを学習させてみたり、野球ゲームを作ってみたりと色々してました。現在はライターとして、Unityで開発する人の力になる記事が書けるよう奮闘中。

目次
閉じる