2016年1月13日水曜日

Unity5.3: Mac版UnityでXbox360パッドでプレイできるようにやったこと

Unity5.3のゲームプレビュー中に、キーボード入力が突然効かなくなる事がある。原因が分からないので、代わりにXbox360パッド(有線)を使ってみることにした。
xbox360pad.jpg

ドライバーのインストール

Xbox360パッドをMacで利用するにはドライバーが必要になるそうだ。公式のものはないようなので、個人が開発されているものを利用させて頂いた。(以下リンク)

MacはYosemite以降、ドライバー本体に開発者署名がされていないと、基本的にインストールできない仕組みになっているようだ。署名をするにはMacのデベロッパー契約をして年会費を支払う必要がある。ソースをダウンロードして自分でビルドするには、なかなか敷居が高い。


幸いにも、上記GitHubのページの下の方にあるreleases pageというリンクから辿ると、署名済みのドライバー本体がダウンロードできるようになっている。

インストール後、システム環境設定を開くと、Xbox 360 Controllersという設定項目が増えている。そこから接続とパッド入力のテストができるようになっている。

xboxsetting.jpg

Unity側の設定

Unity側では特に設定は必要ないと思っていたが、デフォルトのままだとボタンのマッピングがXbox360パッドに合わず、修正しなければならなかった。
Editメニュー -> Project Settings -> InputでInputManagerを開き、Fire1、Fire2、Fire3、Jump、Submit、Cancelのボタン設定を変更した。Cancel以外は同じ名前の設定が2ずつあるので混乱するが、中を見て"joystick button 番号"と書かれている方を修正しよう。

InputManager.jpg InputManager2.jpg

番号にはゲームパッド毎に設定されている番号を入力する。Xbox360のボタン番号は、以下の記事を参考にさせて頂いた。

私は以下のように設定してみた。
  • Fire1 -> joystick button 16
  • Fire2 -> joystick button 17
  • Fire3 -> joystick button 18
  • Jump -> joystick button 19
  • Submit -> joystick button 16
  • Cancel -> joystick button 17

ここまでやって、ようやくプレビュー中にXbox360パッドで操作できるようになったが、喜びもつかの間、キーボード入力の時と同様に、突然パッド操作ができなくなる症状が出てしまった。Unity側に問題が潜んでいるのだろうか?

その他にも問題があった。Macをスリープさせてから復帰すると、Xbox360パッドの入力がUnityで取得できなくなってしまう。(システム環境設定上では正しく認識しているのだが) Xbox360パッドのUSBを抜き差ししても直らず、Unityを再起動して、再び操作することができるようになった。

関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...