【Unity】InputSystem② ‐ Interactions設定

Unity(2D)

この記事では、InputSystemの入力処理を実装していく上で重要なInteractionsの設定について解説していきます。

前提となる基本的な導入方法やAction Type、フェーズについての基礎知識は以下の記事にまとめていますので、ぜひご確認ください。

InteractionsとAction Type

InteractionsとAction Typeは、それぞれ以下のような設定を行うものです。

  • Action Type:ボタンやアナログスティック、トリガーボタンといった入力種別に関する設定
  • Interactions:長押し、複数同時押しなど、通常の入力に加えて、その入力の仕方に関する設定

どちらの設定も、前回触れたフェーズの遷移条件を変更するので、その優先度は
[Interactions>Action Type]*となります。

一言コメント
一言コメント

*つまり、Action Typeの設定が有効であるためにはInteractionsが設定されていない状態である必要があるということになります。

Interactionsの設定方法

Interactionsは、Action Properties下部のInteractionsで[+]アイコンをクリックすることで追加設定が可能です。

Binding Propertiesにも同様にInteractions設定欄があり、バインド設定ごとに別の設定を行うことも可能となっています。

Interactionsの種類

Interactionsには、以下の種類があります。
基本的な考え方は、「ある条件を満たしたときにPerformedフェーズへ遷移する」ということです。

Hold:一定時間以上の入力(長押し)

一定時間以上ボタンを押下したときにPerformedフェーズへ遷移する設定です。

Multi Tap:連打入力

マルチタップ(連打)操作時に検地を行う設定です。各設定項目は以下の通りです。

  • Tap Count:連打検知回数。この規定値を超えたときにPerformedフェーズへ遷移。
  • Max Tap Spacing:連打判定を行う最大許容時間。
  • Max Tap Duration:連打として判定する入力受付時間間隔の設定。

Press:ボタン押下/解放判定

ボタンの押下、もしくは解放時にPerformedフェーズへ遷移する設定です。
Trigger Behaviorで、どのタイミングで適用するかを変更できます。

  • Press Only:ボタン押下時のみ、Performedフェーズへ遷移
  • Release Only:ボタン解放時のみ、Performedフェーズへ遷移
  • Press And Release:ボタン押下時と解放時の両方で、Performedフェーズへ遷移

Slow Tap:スロー入力

ゆっくりとした入力操作を判定する設定です。
Min Tap Durationで、入力の最小時間を設定できます。

Tap:短押し入力

短押し操作(=押してすぐ離す)を判定する設定です。
Max Tap Durationで、短押しとして認識する受付時間を設定できます。

複数Interactions設定と種別ごとの判定

複数のInteractions設定を設定した場合は、各設定が同時に判定され、Performedフェーズへの遷移がそれぞれ発生することになります。

同アクション内でのコールバック発生時に、各Interactions設定を判定するには以下の構文を用います。

if(context.interaction is XXXXInteraction)   //XXXXの箇所にInteracrions名を入力

例:Hold Interacrionsを判定したい場合

if(context.interaction is HoldInteraction)

参考サイト

公式マニュアル:

Interactions | Input System | 1.3.0
おすすめの本①
Unity(2D)
ひらまめ(hiramame)をフォローする
ひらまめゲーム制作研究室

コメント

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