😸
GameModeの処理を待ってからAActor::BeginPlayしたい
AActor::BeginPlay や UActorComponent::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