【Unity】InputSystem 調査備忘録

Unity

Action とは

Actionを作る流れ

Action → Composite

または

Action → Binding

の2パターンあります

どう使い分けするかですが、

前者は、Actionの最終目的アウトプットを得るために1個のBindだけで完結しない場合
例えば、4方向の付加情報(Vector2)を最終目的アウトプットとした場合、 ジョイスティックであれば1Bindで情報を取ることができるが、キーボードで取得使用した場合、
WASDなどの複数のBindが必要となる。こういた場合にCompositeを使うようだ。

なので付加情報が必要ない場合であれば後者でいいってことになります。

本当にInputSystemは複雑でややこしい、だめだこりゃ

ActionType

Actionは ActionType と ControlType を決める必要があります

下記表に従って決めましょう

ActionType 条件 ControlType
Button 1回押したら反応するもの 選択不可
Value Button以外のもの全て Vector2

アクションタイプを作るには下記図の+ボタンで作成可能です

Composite

作り方は Action の右側にある+ボタンを押下するとメニューが表示されるので、

その中にある 「Composite」という接尾語があるものを選べます。

設定値は Action に引っ張られる形になるので特に設定は必要ないです(2021/10/06時点の知識)

Comositeを作ると自動でBindingもセット作られるのであとはゲーム仕様に合わせて入力条件をセットしていくだけになります。

Bind

作り方は Action の右側にある+ボタンを押下するとメニューが表示されるので、

その中にある 「Add Binding」を選択します

パラメータの設定方法としては、

① 入力デバイスを選択

② ①の入力デバイスの「どこ」を押したときに発火させるのかを選びます

Processors とは

誤動作を閾値を設けて精度を上げようという機能と思っていますが。

gamedev65535.com

Interaction とは

        moveAction.started += MoveAction_started;
        moveAction.performed += MoveAction_performed;
        moveAction.canceled += MoveAction_canceled;

この3つのコールバックがInteractionの設定内容によって変化します。

performed だけ検知すれば目的の判定になると思います。

Press

押された瞬間を検知

パラメータ 内容
Press Point 変更したらまともに動作しないから変更厳禁
Trigger/Callback Started Performed Canceled
Press Only ボタンが押された瞬間 ボタンが押された瞬間 ボタンが離れた瞬間
Release Only ボタンが押された瞬間 ボタンが離れた瞬間 ボタンが離れた瞬間
Press and Release ボタンが押された瞬間 ボタンが押された瞬間
ボタンが離れた瞬間
ボタンが離れた瞬間
Hold

押し続けを検知する

パラメータ 内容
HoldTime 押し続けたというしきい値(秒数)
Callback Started Performed Canceled
Started ボタンが押された
Performed HoldTime秒押し続けた瞬間
1度検知されたら離さないと検知はされない
Canceled ボタンが押された瞬間
Tap

押して離すを検知

パラメータ 内容
Max Tap Duration 押してから離すまでのしきい値(秒数)
Callback Started Performed Canceled
Started ボタンが押された
Performed ボタンが押されてからMax Tap Duration以内にボタンが離れた瞬間
Canceled ボタンを押してからMax Tap Duration後も押し続けられた瞬間

SlowTap

長押して離すを検知

パラメータ 内容
Min Tap Duration 押してから離すまでのしきい値(秒数)
Callback Started Performed Canceled
Started ボタンが押された
Performed ボタンを押されてからMin Tap Duration 秒以後にボタンが離れた瞬間
Canceled ボタンを押されてからMin Tap Duration秒以前にボタンが離された瞬間
Multi Tap

ダブルクリック・連打を検知

| --- | --- | | Tap Count | この回数クリックしたら | | Max Tap Spacing | 押離しから再度押すまでの猶予時間
この時間を超えるとキャンセルとなる | | Max Tap Duration | 単押しとする押した〜離すまでの時間
この時間を超えるとキャンセルとなる |

Callback Started Performed Canceled
Started ボタンが押された
Performed Tap Count をクリックした場合
条件達成後も同じ条件で再度イベントが発生
Canceled キャンセル条件に該当した場合