イベントディスパッチャーとインターフェースについての質問になります。
FPSで実装したイベントディスパッチャーで以下のような物がありました。
・FirstPersonCharacterにイベントディスパッチャPickUpItemを追加
・TemplatePickUpのBeginplayでカスタムイベントをイベントディスパッチャのPickUpitemをバインド
上記の流れでイベントディスパッチャを実装しましたが、以下の質問になります。
①イベントディスパッチャはイベントをバインドする事により、基本的には「BP_AのイベントAが実行されたら、自動的にBP_BのイベントBも実行する」というような利用をすることが多いでしょうか。
(イベントディスパッチャはイベントディスパッチャでバインドしたイベントと別actorとして分かれていますが、同時に処理したい時に利用されるような理解ですがイメージ合っておりますでしょうか)
②インターフェースとイベントディスパッチャが動作としてはどちらも「別BPのイベントを起動させる」理解なのですが、使い分けはどのようにすることが一般的でしょうか。
例えば「攻撃がヒットした際にHPを削る」処理があった際に、対象が複数(敵A/敵B/敵Cそれぞれに処理を記載する必要がある)のようなときはインターフェース
「アイテムを拾った際にアイテムが消える」等の主にプレイヤーが主軸となりそうな処理の場合はイベントディスパッチャ、というような形になりますでしょうか。
※この先の講義である内容でしたらすいません。
今後この機能はよく使う事になるかと思いましたので、利用例を聞いてみたいと思い記載させていただきました。
解釈が違う内容がありましたらお手数ですがご指摘いただければありがたいです。
以上です。よろしくお願いいたします。
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/Blueprints/UserGuide/EventDispatcher/
・インターフェースについて https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/Blueprints/UserGuide/Types/Interface/
UE4のドキュメントにはインターフェースについてこのように記載されてます。
ブループリント インターフェースはブループリントの相互共有やデータの送信を可能にします。 ブループリント インターフェースの使用により、ある特有の機能性を共有する複数の異種タイプのオブジェクトの相互作用に共通メソッドを使用することができます。
イベントディスパッチャについての理解についておおむねあっている事お教えいただきありがとうございます。
インターフェースについては「関数処理の共通化」とのことで、
私がインターフェースの関数をイベントと捉えてしまっていたみたいで、関数としての実装/実行となる事で理解しました。
イメージは理解できましたので、実装時に何かあればまた質問させていただければと思います。
ありがとうございました。