「キーボードでもゲームパッドでも操作できるようにしたい」「プレイヤーがキー配置を変更できるようにしたい」――こんな要望を実現しようとして、旧Input Systemで苦労した経験はありませんか?
New Input System は、Unity 2019から導入された 次世代の入力処理システムです。 Input Actions という抽象化された概念を使って、デバイスに依存しない柔軟な入力処理を実現します。
この記事でわかること
- Input Actionsの仕組み(デバイス非依存の入力処理)
- Input Actions Assetの作成からスクリプト実装までの流れ
- Player Input方式とC# Class生成方式の使い分け
- 「移動が止まらない」などの定番トラブルの解決方法
動作確認環境: Unity 2022.3 LTS / Unity 6
目次
Sponsored
インストールと初期設定
パッケージのインストール
Window > Package Managerを開く- 左上のドロップダウンから
Unity Registryを選択 Input Systemを検索してインストール- 再起動を促すダイアログが表示されたら「Yes」をクリック
Active Input Handlingの設定
Edit > Project Settings > Playerを開くOther Settings > Configuration > Active Input Handlingを確認- Both または Input System Package (New) を選択
- エディタが再起動される
Both: 旧Input Systemと新Input Systemの両方が使用可能。移行期間中に便利です。
旧Input Systemとの違い
旧Input Systemの問題点
- デバイスごとに個別のコードが必要
- キーバインドのカスタマイズが困難
- マルチプラットフォーム対応が大変
- ローカルマルチプレイヤー対応が困難
New Input Systemの利点
- デバイス非依存の実装 - 同じコードで複数デバイスに対応
- マルチプラットフォーム対応 - 設定ファイルで一元管理
- キーバインドのカスタマイズ - 標準機能として提供
- ローカルマルチプレイヤー対応 - Player Inputコンポーネントで簡単に実装
- 複雑な入力パターン - 長押し、ダブルクリックなどを設定だけで実現
新旧の構造の違いを図にすると、New Input Systemの狙いがよく分かります。デバイスごとにバラバラだった入力処理が、「Action」という1つの窓口に集約されるのです。

New Input Systemの構成要素
| 要素 | 説明 |
|---|---|
| Input Actions Asset | 入力設定を保存するファイル |
| Action Map | 関連するActionをグループ化したもの |
| Action | 操作の単位(移動、ジャンプなど) |
| Binding | Actionと実際の入力デバイスを結びつけるもの |
| Player Input | 入力イベントを受け取るコンポーネント |
