【UE5】状況別に入力を切替えるテクニック
今回は、Mapping Contextを使うことによって、入力可能の状態を切り替える処理について書いていこうと思います。
✅Get Player Controller
✅Enhanced Input Local Player Subsystem
✅Add Mapping Context
✅Remove Mapping Context
これらのノードとInput Actionを組み合わせることによって、状況によって、状態の切り替えをすることができるようになります!
それではやっていきましょう!

まずは、「Input Action」を作成していきましょう!
右クリック→入力→入力アクションで作成
名称:Attack

続いて、作成したInput Action(Attack)を設定するInput Mapping Contextを作成していきます!
右クリック→入力→入力マッピングコンテキストで作成
名称:IMC_Attack

作成出来たら、IMC_Attackを開きます
Mappingの⊕を押して、InputActionを設定する項目を追加します
今回はLefClickを登録していますが、お好きなキーなどを設定してください
設定方法
⊕→キーボードのIconをクリック→左クリックで設定

アクタコンポーネントを作成していきます
右クリック→ブループリント→アクタコンポーネントを選択して作成
名称:BP_Attack

ThirdPersonCharacter(プレイヤーキャラクター)を開きます
コンポーネントの追加から作成した「BP_Attack」を検索して追加します

ThirdPersonCharacter(プレイヤーキャラクター)のイベントグラフに処理を書いていきます!
まずは、なにかしらのInput Actionを配置してください。今回は「Left Shift」を配置しています。
右クリック→検索窓にShiftと入力→LeftShiftを選択で配置
各種ノードは、状況に合わせた表示のチェックを外すと検索可能だです。ですがGet Player Controllerを配置してから、ノードを引っ張り検索するとチェックを外す必要がないので、おすすめです
Add Mapping ContextとRemove Mapping ContextのMapping Contextには、作成した、「IMC_Attack」を設定してください

ここまでできたら、「IA_Attack」を配置
特に今回は何かの処理を作ることはしないため、PrintStringを配置しています
ゲームをプレイしてみましょう!!!

まずは、左Shiftを押すと、Addが表示され、離すとRemoveが表示されることが確認できたかと思います。

次に、押している間、つまりAddの状態で左クリックをすると、Attackが表示されたと思います。
左Shiftを離している状態では、左クリックを押してもAttackは表示されないため、左Shiftを押している間のみ左クリックが有効になっているということが分かりますね!
この処理はインベントリなどでも活用できるものになりますので、覚えておくと良いかもしれませんね!