お世話になっております。
行き詰まってしまったため、ご教授願いたいです。
現在、親BP(以下、A)から子BP(以下、B・C)へのBPインターフェースを用いた通知を行っています。
画像のようにBPを組み、同じ親Aを継承したB,Cをスポーンさせたところ、Bでは通知が来るのですが、Cでは通知が来ません。
原因がよくわからないのですが、何が問題でしょうか?
お世話になっております。
行き詰まってしまったため、ご教授願いたいです。
現在、親BP(以下、A)から子BP(以下、B・C)へのBPインターフェースを用いた通知を行っています。
画像のようにBPを組み、同じ親Aを継承したB,Cをスポーンさせたところ、Bでは通知が来るのですが、Cでは通知が来ません。
原因がよくわからないのですが、何が問題でしょうか?
ご回答ありがとうございます。
インターフェースは親にのみ設定しており、子はそのインターフェースを継承している形になります。
勉強不足で大変お恥ずかしいのですが、「Override」「カスタムイベントを上書き」とはどういうことでしょうか・・・?
BlueprintInterfaceがどのBPに設定されているかによって挙動が変わります。
親、もしくは子それぞれに設定されていますか?
親に設定されている場合は、子に継承されるので原因は他になるでしょう。
子のどちらかにしか設定されていないのであれば、それが原因です。
また、親子関係があるのならばInterfaceを使わずともOverrideで事足ります。
親BPに空のカスタムイベントを設定して、そちらをCallするようにしておき、子BPでそのカスタムイベントを上書きすればよいです。
継承を行うにあたり、子は親の情報を知っています。
それは変数であったり、イベントであったり、コンポーネント構成であったりします。
そしてUE4において、親BPで定義したCustomEvent…他のイベントもそうですが…は、子BPの側で上書きすることが出来ます。これをオーバーライドといいます。
よく見るBeginPlayなどのイベントも、元を正せばActor等に設定されているイベントを継承・オーバーライドすることで実装されています。