※この記事で使用しているUnrealのVersionは04.26.0です。
例えば、適当なPersistentLevelに「A」というレベルと「B」というレベルをサブレベルにぶら下げたとします。
さらに、Actorクラスを継承したBlueprintを作成します。
作成したBPの中に、「Actor(Reference)」の型の変数を作成します。
出来たクラスを、先ほど作成したAというレベルとBというレベルに入れてみます。
しかし、ActorReferenceの変数にお互いを入れることはできません。
では、Actorクラス内の変数をActor(SoftObjectReference)にしてみます。
こうすることで、レベル間をまたいでアクターの参照をインスタンス側でも取得することができます。
ここで注意なのが、
①変数で指定したアクターが、レベルが読まれていないと扱えない(当然)
→レベルの読み込み順番などに注意
②「IsValidSoftObjectReference」での判定は、Referenceが有効かどうかであって、引数に何かしらのアクターを入れていれば、アクターが入っているレベルがロードされていなくても有効になる。
オブジェクトがロードされているかは、一旦Referenceに変換してからIsValidを行う
以上