実装したのが少し前でもう忘れてる。
スタンドアローン版では起動時に設定ダイアログを出すことでキーコンフィグが可能だが、
ダイアログを出したくないし、ゲーム内でいつでもキーコンフィグができるようにしたいし、uGUIだって使いたい!がために考えた方法。
必要な手順は下記の3つ
- Inputのラッパークラスを作成
- EventSystemのStandaloneInputModuleの置き換え(※)
- InputManagerにJoystickAxisを追加
忘れないうちに文章化すべきだった…
手順1.ではInputのラッパークラスを作成し、キーマップを用意する。
手順から抜けているが、キーマップを変更するためのUI(キーコンフィグ)ももちろん必要。
これでほぼゲーム内キーコンフィグを実現できたようなものだけど、
これだけではuGUIのOnSubmitやNavigation等の用意された機能を利用することができない。
そこで手順2.のStandaloneInputModuleの置き換えを行う。
StandaloneInputModule内でInputが利用されている箇所を手順1.で作成したInputラッパークラスに書き換えたスクリプトを用意し、置き換える。(※)
手順3.はjoystickのアナログ入力に対応するためInputManagerにJoystickAxisの1st~20thを設定する。
こうすることでInputがアナログ入力を拾ってくれるのでラッパークラスでも拾うことができる。
アナログ入力を使用しないのであれば手順3.は行う必要がなく、
キーマップで入力の対応が出来ていればInputManagerの設定自体が不要になる。
(マウス関連は弄ってないのでわからない。不要にならないかも。)
大雑把なイメージ 間違ってたらごめんなさい
※注釈というか余談
StandaloneInputModuleのソースはこちらで公開されています。(少し古いみたいです)
提供元は下記リンクのやりとりを見たところ
UnityTechnologiesの方が非公式に公開してくれているアカウントのようです。
オープンソースとして公開される予定みたいなので、それを待ってもいいかもしれません。
0 件のコメント:
コメントを投稿