DetaTable から読み込んだ値が3D Widgetに反映されない

環境
・Windows 10
・Unreal Engine5.1
・Visual Studio 2019

本文
DetaTableから読み込んだ座標にActorを配置して、それぞれの上に異なる名前の入った3D Widgetを表示したいのですが、すべて同じになってしまいます。

作成手順
・モデルを配置する座標・3D Widgetに表示したい名前が入ったcsvを作成。
・WidgetはコンポーネントにしてActorと同じ空間で作成。

作成したBP

BP_test4の内容

以上、情報の不備不足有りましたらご指摘いただけますと幸いです。
どうぞよろしくお願いいたします。

BP_Test4の処理の画像が解像度が低く細かい数値まで見えませんが
そもそもForLoopの後にGetDataTableRowNamesからForeachが見えるため
データテーブルの数xループ数同じ場所に同じBP_W4を生成していると思われます。

いくつか根本的な部分での対処方法になりますが、こういった構造にしてみてはいかがでしょうか?
処理を拝見したところ、BP_W4とWB_Test4の位置は同じXY座標を持つようなので
BP_W4にWB_Test4をComponentとして持たせ
BP_test4で行うSpawnActor時に番号、あるいはデータテーブルのRowNameを初期値として渡してやりBP_W4がその初期値をみて文字や座標を更新する。というものです

何らかの意図があってそういった処理をしていたり、検討違いであれば申し訳ないですが
こういった対処もあるということで。

1 Like

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

いろいろ調べたのですが、『BP_test4で行うSpawnActor時に番号、あるいはデータテーブルのRowNameを初期値として渡してやりBP_W4がその初期値をみて文字や座標を更新する』という方法がわかりませんでした。お手数ですが、具体的な方法を教えていただけますでしょうか。(初心者です・・)
また、『BP_W4にWB_Test4をComponentとして持たせ』、BP_W4をビューに配置してPlayしたところ、無限ループが発生しました。

BP_test4の内容を再掲載します。(前回、画像が小さくて申し訳ありません)


ご教授のほどをお願い申し上げます。

これは一つの回答方法であり、もっといい方法もあると思いますが

BP_Test4の中身はこんな感じ
データテーブルの列の数だけループしてBP_W4をSpawnします
Spawnする際に列の番号を渡しています

BPW4ではRowNoという変数を作成し「インスタンス編集可能」と「スポーン時に公開」にチェックを入れておきます
また、WidgetComponentを付けて頭上に文字が出せるようにします
image

中の処理は以下の通り
BP_test4で渡された列番号からデータテーブルのデータを取得し、自身の頭の上の文字と座標を更新します

あくまで一例なので参考程度ですが。

ご返答ありがとうございます。

なんとか表示させることができました。

とても勉強になりました。