-
在项目开发中,涉及到数据初始化,一个类可能需要依赖另一个类的初始化。因此在某些时候,需要把一个类的初始化的优先级提高。
-
针对不同
Actor
的BeginPlay
在运行时的执行顺序,有兴趣的可以自行去测试。(意义不大) -
下面提供一种方法,使一个
Actor
的BeginPlay
的优先级提高到GameMode
之前。
方法重写GameMode的StartPlay
方法
在AGridManager
的BeginPlay
的方法的执行顺序会提前。
void AxxxxGameMode::StartPlay()
{
for (TActorIterator<AGridManager> ActorItr(GetWorld()); ActorItr; ++ActorItr)
{
AGridManager* GridManager = *ActorItr;
GridManager->DispatchBeginPlay();
}
UE_LOG(LogTemp, Warning, TEXT("hhh"));
Super::StartPlay();
}