C++/Unreal Engine

[UE4] 디버깅 기록 PostActorCreated / 월드에서 스폰시

로파이 2021. 10. 11. 16:45

게임 중 액터를 스폰시 사용하는 함수

T* SpawnedActor = GetWorld()->SpawnActor<T>(...);

위 함수를 호출하게 되면 PostActorCreated()까지의 함수를 모두 호출한 액터를 반환한다.

정확히 생성자 -> PreRegisterAllComponents() -> PostRegisterAllComponents() -> PostActorCreated() -> 반환순으로 이루어진다.

 

플레이어 액터가 PostActorCreated()에서 무기(웨폰)액터를 소환한다면 무기 웨폰도 PostActorCreated()까지 호출된 상태이다.

에디터 모드에서 레벨에 직접 스폰시
게임 플레이시

SetupAttachment vs AttachToComponent

두 함수 모두 첫번째 인자로 전달하는 씬 컴포넌트의 트랜스폼을 부모로 두는 함수이며 SetupAttachment는 생성자에서 호출해야하며 AttachToComponent는 해당 컴포넌트의 Owner Actor가 RootComponent가 있는 상태, 즉 PreRegisterAllComponents와 PostRegisterAllComponents사이에 호출되는 RegisterComponent가 호출된 씬 컴포넌트를 타겟 씬 컴포넌트로 지정할 수 있다. AttachToComponent를 생성자에서 호출하면 해당 컴포넌트가 아직 등록되지 않았기 때문에 부모 컴포넌트로 등록되지 않는다.