CheatManager を使って、開発専用のショートカットキーを追加します
ゲーム開発をしていると、デバッグ用にちょっとしたショートカット入力が欲しい、ということがあります
一応 Debug Key
のノードはありますが、これで全部実装すると、 どのキーを何に使ったか思い出せない となるときも…
そこで、EnhancedInput に対応したデバッグ入力を実装してみましょう
- メリット
- InputAction として名前をつけられる
- Chord 入力、Hold 入力など特殊な入力に対応している
- (ReferenceViewer からどこで使用しているか調べられる)
- デメリット
- 作成するアセット数、手順が多い
CheatManager #
PlayerController に紐づいたクラスで、いわゆるチートコマンドを実装する目的で使用されるクラスです
Shipping ビルド時には無効化される、という特性を持っています
基本的にはコンソールコマンドを実装するためのものですが、これを使えば
デバッグビルド時だけ任意の Component を Player にアタッチする という動作が可能になります
CheatManager は、新規 BP 作成時に CheatManager
を選択します
作成した CheatManager を使用するには、PlayerController の Cheat Class
にクラスを設定します
Cheat 入力用の Component #
CheatManager は PlayerController にくっついているものの、入力情報を受けることはできないので、EnhancedInput の入力ノードを定義してもイベントが実行されません
なので、Cheat 入力用の ActorComponent を作成し、そこに入力イベントを定義することにします
ActorComponent の BeginPlay で、EnhancedInput の InputMappingContext を登録し、入力イベントを登録しておきます
(EnhancedInput の使い方は今回省略します)
CheatManager から Player に Component をアタッチ #
CheatManager のInitCheatManager
イベントで、作った Component を PlayerController に追加します
Pawn に Attach してもいいですが、Pawn に強く依存しないのであれば、PlayerController に Attach するほうが楽かと思います