はじめまして。
ここでの質問は初めてですので、不備等ありましたら申し訳ありません。
質問の内容は、UMGで作ったスライダーにて出した値を他のブループリントに使いたいのですが、その方法を教えてもらいたいです。
私の失敗例ですが、この下に画像を貼ってあります。一枚目はウィジェットブループリントで、二枚目は利用できるようにしたいブループリントです。
理想としましてはスライダーで出した値をセットして、利用したいブループリントにてゲットしたかったのですが、コンパイルエラーがどうしても発生してしまいうまくいきませんでした。
tamfoi
(tamfoi)
2
UMG内に変数を置くのではなく、操作したいActorに変数を作りUMG内でCastしてスライダーの値を渡すというのはどうでしょう?
又は、GameInstanceに一度値を持たせて操作したいActorにGameInstanceをCastさせる方法もあります。これが一番手っ取り早いかもしれません。
画面左上にUMGのスライダーをいじると
レベルに置いてあるCubeのスケールが変更できる
サンプルプロジェクトを作成しましたのでご参考になれば幸いです。
やり方的には、tamfoiさんと同じ返答ではありますが、
UMG内では変数の実体をもたせず、スライダーが変更されたイベントを受け取って
レベルにある変数(上記プロジェクトではCubeのスケール)を変更するイベントを呼び出す
という流れにしてあります。(イベントディスパッチャーを使用してます)
なるほど、gameinstanceというのを始めて知りました。
まだ直したいところが山積みですが、なんとか作成することができました。
本当にありがとうございました!
わざわざプロジェクトを作っていただけるなんて思ってませんでした。ありがとうございます。
まだ細かいところをしっかりと見ていませんが、私のレベルだと理解するまで時間がかかりそうです。ですがUMG以外にも悩んでいるところがありましたので、それの参考になりそうです。
二度目になりますが、本当にありがとうございました!