이미 레벨에 있는 액터에 대해서, LoadMap 이 발생했을 때나 (스트리밍 또는 서브 레벨에서) AddToWorld 가 호출되었을 때 발생합니다.
패키지/레벨에 있는 액터가 디스크에서 로드됩니다.
PostLoad : 디스크에서의 로드 완료 후 serialize 된 액터에 의해 호출됩니다. 커스텀 버전이나 픽스 작업은 이 곳에 와야 합니다. PostLoad 는 PostActorCreated 와 상호 배제됩니다.
InitializeActorsForPlay
RouteActorInitialize 초기화되지 않은 액터에 대해 호출됩니다 (심리스 트래블 전환 처리)
1) PreInitializeComponents - 액터의 컴포넌트에 InitializeComponent 를 호출하기 전 호출합니다.
2) InitializeComponent - 액터에 정의된 각 컴포넌트 생성용 헬퍼 함수입니다.
3) PostInitializeComponents - 액터의 컴포넌트 초기화 완료 후 호출됩니다.
BeginPlay - 레벨이 시작되면 호출됩니다.
액터를 스폰(인스턴싱)할 때 따르게 되는 경로입니다.
SpawnActor이 호출됩니다.
PostSpawnInitialize가 호출됩니다.
PostActorCreated - 스폰된 액터의 생성 이후에 호출됩니다. 생성자같은 것이 여기에 와야 합니다. PostActorCreated는 PostLoad와 상호 배제적입니다.
ExecuteConstruction:
PostActorConstruction :
OnActorSpawned 가 UWorld 에 Broadcast됩니다.
BeginPlay 가 호출됩니다.
"Expose on Spawn" 설정된 프로퍼티가 있으면 액터는 디퍼드(유예시켜 나중에 한 번에 몰아서) 스폰이 가능합니다.
SpawnActorDeferred - 액터의 절차적 생성을 뜻하는 것으로, 블루프린트 컨스트럭션 스크립트 이전 추가적인 구성이 가능합니다.
SpawnActor 안의 모든 것이 일어나지만, PostActorCreated (액터 생성 이후) 뒤에는 다음과 같은 일이 일어납니다:
1) 유효하지만 완료되지는 않은 액터 인스턴스로 다양한 "초기화 함수" 구성 / 호출을 합니다.
2) FinishSpawningActor - 액터를 마무리시키기 위해 호출되며, SpawnActor (액터 스폰) 줄의 ExecuteConstruction (생성 실행)을 집어듭니다.
Destroy - 액터를 제거해야겠다 싶지만 게임플레이가 계속 진행중일 때 게임에서 수동으로 호출됩니다. 액터는 킬 대기 상태로 마킹되며, 레벨의 액터 배열에서 제거됩니다.
EndPlay - 액터의 수명이 막바지에 다다랐음을 보증하기 위해 여러 곳에서 호출됩니다. 플레이 도중에는 Destroy (소멸)이나, Level Transition (레벨 전환)이나, 액터가 들어있는 스트리밍 레벨이 언로드되면 이 함수가 발동됩니다. EndPlay 가 호출되는 경우는 다음과 같습니다.
어떻게 발생했는지와는 상관없이, 액터는 RF_PendingKill 마킹되어 다음 가비지 컬렉션 주기 동안 deallocate (할당 해제)됩니다. 또한 pending kill (킬 대기상태)를 수동 검사하기 보다는, 보다 깔끔한 FWeakObjectPtr 사용을 추천합니다.