😸

GameModeの処理を待ってからAActor::BeginPlayしたい

2020/09/27に公開

AActor::BeginPlayUActorComponent::BeginPlay より先に GameModeの初期化処理を回したいというとき、どうすればいいのか。

GameModeで AActor::BeginPlay を継承して使用すると、Shippingでパッケージ化した際に、実行順がバラついてよくわからないことになった。

対処として、 AGameModeBase::StartPlay を使うと良いっぽい。

AGameModeBase::StartPlay には、Transitions to calls BeginPlay on actors. とあるので、多分ここで各 AActor::BeginPlay が呼ばれているっぽい?

void AMyGameMode::StartPlay()
{
    DoSomething(); // なんらかの処理
    Super::StartPlay();
}

親の StartPlay より先に処理をしてやると良さそう。

Discussion