【これ1本でOK】 新InputSytemを25分で 【unity 6】

Engineering

こんにちは。VisualProgrammerの西条です。

UnityのInput System、使いこなせていますでしょうか?
Unity 6でデフォルトになりました。
旧式の、Input.GetKeyDown() と言ったコードは、もうすぐ書けなくなるでしょう。

今回は、UnityのInput Systemについて、解説する動画を作成しました。

Nobu
Nobu

この動画は、次のような方におすすめです

  • InputSystemの全体をザッと理解したい
  • InputSystemの基本的な使い方をmasterしたい
  • unity 6 でInputManager(旧)も一応使いたい
  • 色々な動画を観るのは面倒なので、きちんと1本でまとめてほしい
contents
  • InputActions file : 構成
  • actionの追加・設定
  • scriptからactionを使う
    • Project Wide Actions
      • Event
      • Polling
    • Original Input Actions
      • InputActionAsset
      • PlayerInput
  • unity 6 でInputManager(旧)を使う

それでは、ご覧ください。

以下に、Pointを整理しておきます。

Point整理
  • Input Actions file の構成
    • ActionMap
      • 整理するための、ただのグルーピング : Player操作、UI操作、etc
    • Action
      • 上記、ActionMapの下に、Actionを追加する : Move、Jump etc
    • Binding
      • 上記、Actionを、実際に発火(trigger)させるDevice Inputを設定
  • デフォルトで、”InputSystem_Actions”と言う名前のInput Action fileがAsset内に生成される。これは、”Project Wide Actions”に設定されている。もちろん、original fileを生成することも可能。
  • ActionProperties/ Action/ ActionType
    • value
      • アナログっぽい動きをするもの。
        スティック、マウスなど
    • button
      • button。on/off。
    • pass through
      • 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
  • ActionProperties/ Processors
    • ReadValueで取得する値の加工。
      Clamp、Invert etc
      ただし、状態遷移は生値で動くので、Processorsを設定しても、状態遷移の各threshは変更する必要なし
  • Binding/ interactions、Binding/ Processors
    • ActionPropertiesのそれらと同じ働き。
      ActionProperties、Binding、の双方に設定した場合は、後出し勝ち(Bindingが有効)
  • Control Scheme
    • 設定したBindingを、どのDeviceが、Systemに刺さっている時に有効、とするか。
      何も選択しなければ、常に有効(Global)。

      選択する場合は、
      GamePadのStickをぶら下げたのに、Control Schemeを「XR」にする、
      など、ひねくれたことをしないこと
      -> 設定が無効になります。
  • Auto Save
    • Input Actions Editorは、明示的に”save button”を押さないと保存されない。
      “Auto Save”にしておいてもOK
  • scriptからInput Actions fileにaccess
    • Project Wide Actions
      • Event
      • Polling
    • Original Input Actions
      • InputActionAsset
      • PlayerInput
    • “Project Wide Actions”にOriginalをsetしてもOK
  • Input.GetKeyDown()を使いたい場合
    • Edit/ ProjectSettings
      Player/ OtherSettings/ Configuration/ ActiveInputHandling

      InputManager(old) or both
  • より細かい内容 : 別動画でまとめます
    • 各Action Type(value, button, pass through)の細かい状態遷移
    • original interactionの追加 : Key Repeatなど
    • original processorsの追加
    • control scheme 詳細

また、他にもUnityに関する動画をUpしているので、ぜひそちらも参考にして下さい。

タイトルとURLをコピーしました