※この記事で使用しているUnrealのVersionは04.26.0です。

例えば、適当なPersistentLevelに「A」というレベルと「B」というレベルをサブレベルにぶら下げたとします。

さらに、Actorクラスを継承したBlueprintを作成します。

作成したBPの中に、「Actor(Reference)」の型の変数を作成します。


出来たクラスを、先ほど作成したAというレベルとBというレベルに入れてみます。
しかし、ActorReferenceの変数にお互いを入れることはできません。

では、Actorクラス内の変数をActor(SoftObjectReference)にしてみます。

こうすることで、レベル間をまたいでアクターの参照をインスタンス側でも取得することができます。

ここで注意なのが、

①変数で指定したアクターが、レベルが読まれていないと扱えない(当然)
→レベルの読み込み順番などに注意

②「IsValidSoftObjectReference」での判定は、Referenceが有効かどうかであって、引数に何かしらのアクターを入れていれば、アクターが入っているレベルがロードされていなくても有効になる。
オブジェクトがロードされているかは、一旦Referenceに変換してからIsValidを行う

以上

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です