オプション画面の「ジャンプ: Space [変更]」というあのボタン——キーコンフィグは、今どきのPCゲームではあって当たり前の機能です。そして「プレイヤーがキーを差し替えられる」ことこそ、New Input System を選ぶ最大の理由のひとつ。ところがいざ作ろうとすると、「押されたキーをどう待ち受ける?」「変更をどう保存する?」と手が止まりがちです。
この記事では、New Input Systemの PerformInteractiveRebinding() を使ったリバインド実装を、仕組み(Bindingの上書き)→ 基本実装 → UI連携 → 保存・復元の順で解説します。
この記事でわかること
- リバインドの正体は「Bindingの上書き(override)」であること
PerformInteractiveRebinding()による「次の入力を待って差し替える」実装- 変更したキーの表示・変更待ち状態などUIとの連携
SaveBindingOverridesAsJsonによる保存と起動時の復元
仕組み:リバインド=Bindingの上書き
New Input Systemでは、「ジャンプ」というアクションと「Spaceキー」という Binding(割り当て) が分離されています。リバインドとは、このBindingを書き換えること——正確には、元の定義はそのままに、上書き(override)を被せることです。

元の定義(Input Action Assetに保存されたSpace)は消えません。上書きシールを貼るようにoverridePathが優先されるだけなので、シールを剥がせばいつでもデフォルトに戻せます。この構造が、後述の「リセット機能」や「保存のしやすさ」に直結しています。
基本実装:PerformInteractiveRebinding
「変更ボタンを押す → 次に押されたキーを待つ → そのキーで上書きする」という一連の流れを、PerformInteractiveRebinding()が丸ごと引き受けてくれます。
