お世話になっております。
WorldPartitionにあるDataLayer機能を使用し、ゲームの進行の応じてアクターをアクティベートしたり、ディアクティベートしたり
制御したいと思っています。
DataLayerの状態について不明点があるので質問いたします。
① データレイヤーをアクティベートした後、そのデータレイヤーに結び付いているアクターたちを取得して、まとめて表示、または非表示化したいですが、
何かの良い方法はないでしょうか。ULevel で Actors 配列に格納されているのは把握しておりますが、それで制御して良いものでしょうか。
② データレイヤーの Activated 完了判定は UWorldPartitionSubsystem::IsStreamingCompleted 関数を使用することで間違いでしょうか。
弊社の他のプログラマーから正しく判定がとれていないという報告があり、代わりにデータレイヤーの状態を取得できる疑似アクターを実装しました。
それをデータレイヤーと結び付けて、データレイヤーを Loaded、または Activated する時、アクターの PostLoad や BeginPlay でマネージャーに通知しています。
もし他の方法があれば、教えて頂けませんでしょうか。
③ DataLayerAsset を DataLayerInstanceName に変換する方法は、UDataLayerManager::GetDataLayerInstanceFromAsset を使用するしかないでしょうか。
ForEachDataLayerInstance ループで探すより、直接 DataLayerAsset から DataLayerInstanceName を取得することが望ましいですが、方法はありますでしょうか。
以上です。よろしくお願いします。