새소식

개발/UE4

[UE4] DeferredActorSpawn 과 초기화

  • -

 

UE4는 액터를 스폰하는 방식이 두가지로 나뉜다.

첫 번째는 즉시 스폰 시키는 SpawnActor를 사용하는 방법

두 번째는 액터에 필요한 초기화를 선행한 후 BeginPlay로 넘길 수 있는 DeferredActorSpawn 함수를 사용하는 방법이 있다.

두 함수의 차이점은, SpawnActor를 수행하면 바로 Actor의 Construction과 PostActorConstruction이 수행되지만
DeferredActorSpawn을 사용하는 경우, 액터에 추가적으로 필요한 초기화 과정을 수행한 이후 'FinishSpawning'함수를 호출해 임의로 생성자 호출 순서를 조정할 수 있다.

DeferredActorSpawn 내부를 보면 아래와 같이 생성자를 호출하고 있다.

	{
		FEditorScriptExecutionGuard ScriptGuard;
		ExecuteConstruction(FinalRootComponentTransform, nullptr, InstanceDataCache, bIsDefaultTransform);
	}

	{
		SCOPE_CYCLE_COUNTER(STAT_PostActorConstruction);
		PostActorConstruction();
	}

Actor 클래스 내에는 Replicate와 같이 bActorInitialize가 활성화 된 이후에 설정해야만 적용되는 변수나 함수가 있기에,
초기화 사이클을 숙지하고 DeferredActorSpawn을 사용해야 한다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.