widgetのOnClickedイベントを他のBPへ通知する方法

初歩的なところから見なおしてみてください。

まずwidgetのButtonを押したイベントは取れていますか?printString等で確認してみてください。

ここで問題があるようでしたら通知する以前の問題になります。

次にここがOKならイベントディスパッチャーの使い方に問題があると思います。

実際の実装したスクリーンショットなどがありましたら載せてもらえると回答率が高まると思いますよ。

1 Like

widgetブループリント上にButtonを配置し、イベントグラフ内にOnClickedのイベントを作りました。
(画面UI上のアイコンをクリックするアクションイベント)
クリックイベント発生時に、他のブループリントに通知しその他のブループリントのアクションを稼働させたいのですが、
うまくいきません。

イベントディスパッチャーも使ってやってみたのですが、うまく伝わらないようです。
どなたかご教示いただけないでしょうか。

早速の回答ありがとうございます。

やはり、イベントディスパッチャーを使うという方法でいいのですよねぇ??
widget側のボタンをClickした際には、イベントディスパッチャー後のPrintString文字は表示されます。

レベルBPにて、次のアクションへ移行させるべく、
イベントディスパッチャーをバインドして、持っていくのですが、
ここでのPrintString文字は表示されていないので、イベント通知が来ていないと
思いますが、
原因がわかりません。
widgetの変数も、編集可の状態にはしているのですが・・・。

流れとしては、
widgetのボタンをクリックすることで、カメラを切り替えるということを行いたいのですが、
カメラ切り替えのBP自体は、キー入力の動作で問題ないことは確認しています。

イベントディスパッチャを使うのは間違っていませんよ。

見たところどこで作成されているんでしょうか?Beginplayのバインドを行っている箇所でターゲットがそれではとれてないのでは?と思われます。

やはりイベントディスパッチャでいいのですね。

レベルBPに作成していますが
ターゲットは、変数の作成で、ボタンの配置してあるwidgetをしていますが、
これがおかしいのでしょうか。。。

あとalweiさんのサイトでは、
http://unrealengine.hatenablog.com/entry/2014/10/20/223445

受信側から送信されてくるイベントの発生元が特定させる必要がある等の
記載がありましたが、widgetBPは、レベルに配置はできないので、そのあたり
何か指定が必要なのかなぁなど悩んでいます。。。

widget自体はHUDを作成し、add to Viewportで表示させています。

解決できました。

widgetの表示自体を、レベルBP上で行うとすんなりと動きました。

HUDは、widgetを扱うためのものだとばかり思いこんでいましたが、
そうではないのでしょうか。。。

ん~まだこのあたりの概念がつかめ切れていませんがとりあえず動いたので、
この形でやっていってみたいと思います。

ありがとうございました。

HUDはDraw等のノードが使えるクラスでUMGのためにあるわけではないですよ。UMGがDraw系が使えないのでその場合HUDでやったりします。UMGは最近できたものなので昔はHUDしかなかったので二つあったりします。