こんにちは。VisualProgrammerの西条です。
UnityのInput System、使いこなせていますでしょうか?
Unity 6でデフォルトになりました。
旧式の、Input.GetKeyDown() と言ったコードは、もうすぐ書けなくなるでしょう。
今回は、UnityのInput Systemについて、解説する動画を作成しました。

Nobu
この動画は、次のような方におすすめです
- InputSystemの全体をザッと理解したい
- InputSystemの基本的な使い方をmasterしたい
- unity 6 でInputManager(旧)も一応使いたい
- 色々な動画を観るのは面倒なので、きちんと1本でまとめてほしい
contents
- InputActions file : 構成
- actionの追加・設定
- scriptからactionを使う
- Project Wide Actions
- Event
- Polling
- Original Input Actions
- InputActionAsset
- PlayerInput
- Project Wide Actions
- unity 6 でInputManager(旧)を使う
それでは、ご覧ください。
以下に、Pointを整理しておきます。
Point整理
- Input Actions file の構成
- ActionMap
- 整理するための、ただのグルーピング : Player操作、UI操作、etc
- Action
- 上記、ActionMapの下に、Actionを追加する : Move、Jump etc
- Binding
- 上記、Actionを、実際に発火(trigger)させるDevice Inputを設定
- ActionMap
- デフォルトで、”InputSystem_Actions”と言う名前のInput Action fileがAsset内に生成される。これは、”Project Wide Actions”に設定されている。もちろん、original fileを生成することも可能。
- ActionProperties/ Action/ ActionType
- value
- アナログっぽい動きをするもの。
スティック、マウスなど
- アナログっぽい動きをするもの。
- button
- button。on/off。
- pass through
- value同様、アナログっぽい動きをするもの。
- value
- “value” と “pass through” の違い
- 複数の入力から同時にinputが入った時の挙動が異なる。
- value
- 1番大きい値が有効となり、この値によって状態遷移が動き、Eventが発生する
- pass through
- 大きさに関係なく、最後に入力された値が有効となり、
この値によって状態遷移が動き、Eventが発生する。
つまり、ぶらさがったDeviceごと、個別に状態遷移が走るイメージ。
「マウス & トラックパッド」などをぶら下げたい場合は、
pass throughにすると良い
- 大きさに関係なく、最後に入力された値が有効となり、
- ActionProperties/ Action/ control
- 値の型 : Vector2 etc
- ActionProperties/ interactions
- performedが飛んでくる条件、timingを変更できる。
Hold、Tap etc
- performedが飛んでくる条件、timingを変更できる。
- ActionProperties/ Processors
- ReadValueで取得する値の加工。
Clamp、Invert etc
ただし、状態遷移は生値で動くので、Processorsを設定しても、状態遷移の各threshは変更する必要なし
- ReadValueで取得する値の加工。
- Binding/ interactions、Binding/ Processors
- ActionPropertiesのそれらと同じ働き。
ActionProperties、Binding、の双方に設定した場合は、後出し勝ち(Bindingが有効)
- ActionPropertiesのそれらと同じ働き。
- Control Scheme
- 設定したBindingを、どのDeviceが、Systemに刺さっている時に有効、とするか。
何も選択しなければ、常に有効(Global)。
選択する場合は、
GamePadのStickをぶら下げたのに、Control Schemeを「XR」にする、
など、ひねくれたことをしないこと
-> 設定が無効になります。
- 設定したBindingを、どのDeviceが、Systemに刺さっている時に有効、とするか。
- Auto Save
- Input Actions Editorは、明示的に”save button”を押さないと保存されない。
“Auto Save”にしておいてもOK
- Input Actions Editorは、明示的に”save button”を押さないと保存されない。
- scriptからInput Actions fileにaccess
- Project Wide Actions
- Event
- Polling
- Original Input Actions
- InputActionAsset
- PlayerInput
- “Project Wide Actions”にOriginalをsetしてもOK
- Project Wide Actions
- Input.GetKeyDown()を使いたい場合
- Edit/ ProjectSettings
Player/ OtherSettings/ Configuration/ ActiveInputHandling
InputManager(old) or both
- Edit/ ProjectSettings
- より細かい内容 : 別動画でまとめます
- 各Action Type(value, button, pass through)の細かい状態遷移
- original interactionの追加 : Key Repeatなど
- original processorsの追加
- control scheme 詳細
また、他にもUnityに関する動画をUpしているので、ぜひそちらも参考にして下さい。

