lo_W_yu123
(lo_W_yu123)
1
現在、タイムアタックゲームのような物を制作しています。
プレイヤーがゴールを通過した場合、
WidgetのVerticalBoxにタイム等の情報をBindしたChildのウィジェットを追加しようと考えているのですが、
別のクラス(あたり判定)と重なった時に 現在表示されているWidgetをキャストして
タイムの情報を動的に追加する為のキャストをする方法が分かりません。
124133-
こちらの画像は、ゴールのクラス内のBlueprintです。(Pawnクラス)
エラーが出ていますが、色々と試した後なのでなんとなく
何をしたいのかを把握してもらえると幸いです。
ウィジェットを参照する方法がもしございましたら、
アドバイスを頂く事は可能でしょうか?
もしウィジェットに詳しい方が居たら、よろしくお願いします。
alwei
(alwei)
2
Widgetを持っているのはどこでしょうか?Widgetを作ったクラス上で変数を作っておき、そのWidgetの変数をゲットすればキャストせずに使用することが可能です。
例えばWidgetをGameMode、HUD、PlayerController内で作っておけばそれぞれにゲッターノードが存在しているので、直接Widgetの変数をゲットすると違うクラスからでもWidgetを弄ることは可能です。
1 Like
GetAllWidgetsOfClass関数を使用すれば全てのWidgetを取得できます。
が、回答にある通りどこからでもアクセス可能なクラスにWidgetの実体を持っておく方が効率的かと思います。
link text
1 Like
lo_W_yu123
(lo_W_yu123)
4
Widgetを作ったクラスは、HUDです。
変数とは、Referenceの事でしょうか?
試しに作ってみましたが、エラーが出るので出来ません。
HUDクラスの中

HUDクラスの中の変数
ウィジェットを操作しようとしているPAWN
124207-
もう少し変数やクラスの事を詳しく教えて貰う事は出来ませんか?
よろしくお願いします。
alwei
(alwei)
5
おそらく、lo_W_yu123さんは変数やクラスがまだ理解できていないので、この処理を作るには荷が重いです。
まずはブループリントの基礎を一通りやってみてください。変数やクラスが一通りわかった上でまだわからないということであれば再度質問していただければと思います。
ブループリント入門
ブループリントのクイックスタートガイド
スクリプト処理の基礎
ブループリント クラス