デフォルトのLevelScriptActorを変更する方法
使用バージョン:UE4.24.2
はじめに
レベルを作成した際の親クラスとして設定されるLevelScriptActor
をプロジェクト設定より変更することができます。
例えばサブレベルの管理など各レベルに共通処理を実装したい場合に、独自のLevelScriptActor
を設定することで対応することも可能です。
準備
LevelScriptActor
を継承したクラスを作成します。
BPの場合
プロジェクト設定 > エンジン - 基本設定
を選択します。デフォルトクラス
のLevelScriptActorClass
の+
アイコンを選択します。
- 任意の名前をつけて保存します。
- 作成したブループリントが自動で開きますのでコンパイルし保存します。
C++の場合
#pragma once #include "CoreMinimal.h" #include "Engine/LevelScriptActor.h" #include "CustomLevelScriptActor.generated.h" /** * カスタムLevelScriptActor */ UCLASS() class ACustomLevelScriptActor : public ALevelScriptActor { GENERATED_BODY() };
デフォルトのLevelScriptActor
を変更
プロジェクト設定 > エンジン - 基本設定
を選択します。デフォルトクラス
のLevelScriptActorClass
に作成したLevelScriptActor
を設定します。
※BPを作成した場合は自動で設定されます。
- エディタを再起動します。
検証時はエディタ再起動することで新規レベル作成時に親クラスとして設定されるようになりました。
新規レベル作成し、親クラスがLevelScriptActor
のままだった場合はエディタを再起動してみてください。
注意
ULevel
からLevelScriptActor
を取得した際に、null
だった場合は該当レベルをコンパイルしてみてください。
※内部的にLevelScriptActor
が生成されるのは、該当レベルのBPをコンパイルしたときのようです。
最後に
各レベルの共通処理の対応方法は他にもありますが、サブレベルの管理や何かしらの管理機能の初期化を待つ必要がある場合など状況によってはこの方法を検討していいかなと思います。