【Unity5】ゲームパッドが接続されているかどうかをスクリプトで確認する

  • 2
    いいね
  • 0
    コメント

概要

Unity5でゲームパッドが接続されているかをスクリプトで確認したかったので、
その方法をまとめておきます。

スクリプト

まず、以下が結果となるサンプルのスクリプトです。

sample.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Sample : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        // 接続されているコントローラの名前を調べる
        var controllerNames = Input.GetJoystickNames();

        // 一台もコントローラが接続されていなければエラー
        if( controllerNames[0] == "" ) Debug.Log("Error");
    }

}

手法

直接「ゲームパッドが接続されているか」を確認できる関数やプロパティは見つけられなかったので、
代わりに Input.GetJoystickNames() という現在接続されているゲームパッドの名前を取得できるメソッドを利用しました。
Input.GetJoystickNames() で接続されているゲームパッドの名前を取得し、
配列の先頭の文字列が空であれば「一台も接続されていない」と判断しています。

ちなみに、 Input.GetJoystickNames() で取得した配列の大きさを取得すれば、接続されているゲームパッドの数も求められますね。
:warning:ただしゲームパッドがゼロ台でも、配列は1の大きさを持つのでご注意を。)