[Unity] キーコンフィグの動的変更についての考察

ゲーム制作でキーコンフィグをユーザ側から設定する機能を実装しようと思うようになりました。
たとえばメニューの決定ボタンや弾を発射するボタンの割り当てをゲーム内の設定画面から変更できるようにする機能です。

Unityの機能でこれらを実現できないかどうかを調べてみました。
結論から言うとそのような機能は無いです。
ただし、UnityEditor上から設定情報を取得することは可能です。

Unityのキーコンフィグに相当する設定は、メニューの「Edit」→「Project Settings」→「Input」から開かれるInputManager画面から行えます。

inputmanager

この設定情報は以下ファイルに格納されています。

 (Unityプロジェクトフォルダ)/ProjectSettings/InputManager.asset

したがって、上記ファイルをUnityEditor上から開いてテキストを読み込んで解析すれば設定情報を一通り取得できます。
取得したInputManagerの設定情報はエディタ拡張を使ってStreamingAssetsフォルダ配下に別ファイルとして保存しておけば、ゲーム中でも自由に設定情報を読み書きできるようになるはずです。
その場合、Unityで標準サポートされているInput系のAPIは使用できなくなり独自にラッパー用のAPIを実装して取得することとなります。

やや面倒な方法ですが、その辺については後日紹介できればと考えてます。

■参考サイト
入力マネージャ / Input Manager
入力 / Input