イベントディスパッチャーとインターフェースについて | UE4&5 Forum | Tech Stadium Forum

イベントディスパッチャーとインターフェ...
 
通知
すべてクリア

イベントディスパッチャーとインターフェースについて  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
30/04/2023 8:43 am  

イベントディスパッチャーとインターフェースについての質問になります。

FPSで実装したイベントディスパッチャーで以下のような物がありました。
・FirstPersonCharacterにイベントディスパッチャPickUpItemを追加
・TemplatePickUpのBeginplayでカスタムイベントをイベントディスパッチャのPickUpitemをバインド
上記の流れでイベントディスパッチャを実装しましたが、以下の質問になります。

①イベントディスパッチャはイベントをバインドする事により、基本的には「BP_AのイベントAが実行されたら、自動的にBP_BのイベントBも実行する」というような利用をすることが多いでしょうか。
(イベントディスパッチャはイベントディスパッチャでバインドしたイベントと別actorとして分かれていますが、同時に処理したい時に利用されるような理解ですがイメージ合っておりますでしょうか)

②インターフェースとイベントディスパッチャが動作としてはどちらも「別BPのイベントを起動させる」理解なのですが、使い分けはどのようにすることが一般的でしょうか。
 例えば「攻撃がヒットした際にHPを削る」処理があった際に、対象が複数(敵A/敵B/敵Cそれぞれに処理を記載する必要がある)のようなときはインターフェース
 「アイテムを拾った際にアイテムが消える」等の主にプレイヤーが主軸となりそうな処理の場合はイベントディスパッチャ、というような形になりますでしょうか。
※この先の講義である内容でしたらすいません。

今後この機能はよく使う事になるかと思いましたので、利用例を聞いてみたいと思い記載させていただきました。
解釈が違う内容がありましたらお手数ですがご指摘いただければありがたいです。
以上です。よろしくお願いいたします。


引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
30/04/2023 8:44 am  
 
1.その認識で合ってます。Aイベントが実行された後同じタイミングで他のオブジェクトにバインドされたBイベントを実行する感じです。
 
2.インターフェースは「別BPのイベントを起動させる」ものではないです。関数処理の共通化する意味でインターフェースを使いますがインターフェースは「イベントを起動させる」挙動はしないです。
UE4のドキュメントにはインターフェースについてこのように記載されてます。
ブループリント インターフェースはブループリントの相互共有やデータの送信を可能にします。

ブループリント インターフェースの使用により、ある特有の機能性を共有する複数の異種タイプのオブジェクトの相互作用に共通メソッドを使用することができます。
This post was modified 1年前 2回 by Teacher

返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
30/04/2023 8:45 am  

イベントディスパッチャについての理解についておおむねあっている事お教えいただきありがとうございます。
インターフェースについては「関数処理の共通化」とのことで、
私がインターフェースの関数をイベントと捉えてしまっていたみたいで、関数としての実装/実行となる事で理解しました。
イメージは理解できましたので、実装時に何かあればまた質問させていただければと思います。
ありがとうございました。


返信引用
共有:
タイトルとURLをコピーしました