開発環境
- Unity 2022.3.45f1
- Input System 1.7.0
ユーザー入力を待ってバインディングを変更する場合は下記の記事(外部リンク)を参考にどうぞ。
今回はユーザー入力ではなく、スクリプトからキーボードのバインディングを変更する。
その際に元の値は書きかえずRemoveAllBindingOverrides()でいつでも元に戻せるようにしとく。
//ゲーム開始時に設定
public void GameStartBinding(int index)
{
//indexには変更したいactionのBindingIndexを指定
InputBinding inputBinding = _action.bindings[index];//_actionにはInputActionReferenceのactionプロパティを代入しておく
inputBinding.overridePath = "<Keyboard>/" + "変更後のPath(例:WやSなど)"
_action.ApplyBindingOverride(index, inputBinding);//変更の実行
}
Code language: C# (cs)
上記サンプルではゲーム開始時に呼び出せるようにしてある。ユーザーが設定したバインディングを保存しといて、起動時に読み込んでもいいかもしれない。
InputSystemは割と初心者には難しい。(自分も躓いた)
コメント