😸
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