inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

10강 게임데이터 관리

34:44 SpawnActorDeferred 질문입니다.

해결된 질문

104

hush park

작성한 질문수 46

0

FinishSpawning 이전에 StatComponent는 아직 생성자만 호출한 상태이며, InitializeComponent 호출을 하지 않았고, NonPlayer 의 경우엔 아직 PostInitializeComponent 를 호출하지 않은 상태인데, 그렇다면 Stat 이라는 이름의 StatComponent를 아직 사용하기엔 위험하다고 볼 수 없는 건가요?

SetLevel 함수 내부에 Stat 을 참조하여 Stat-> 을 하고 있는데, PostInitializeComponent 같은 것을 아직 실행하지 않은 상태에서도 이렇게 참조해도 아무런 문제가 발생하지 않는 것인가요?

 

unreal-engine ue-blueprint 언리얼-c++

답변 2

1

이득우

안녕하세요. 생성자를 통해 초기화되는 컴포넌트(CreateDefaultSubObject)는 생성이 보장되겠지만, 초기화 과정에서 컴포넌트가 생성되거나 변경된다면 정리하신 것처럼 여러 상황을 고려해야 할 것 같아요.
생성자 이외에는 다 케바케로 보고 점검해봐야하지 않을까 생각합니다.

0

hush park

그렇군요 답변 감사합니다!!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. hush park님,

스펙상 SpawnActorDeferred 단계는 액터의 생성자만 호출하고 PostInitializeComponents 및 기타 초기화 과정들은 포함하지 않은 상태입니다. 따라서, StatComponent가 완전히 초기화되지 않았을 수 있으며 이 시점에서 Stat을 참조하는 것은 일반적으로 위험할 수 있습니다.

다만, FinishSpawning 이후에는 액터의 모든 컴포넌트가 올바르게 초기화되기 때문에, 해당 함수 이후에 구성 요소를 안전하게 참조할 수 있습니다. 이런 사용 패턴은 언리얼에서 성능 최적화를 위해 Deferred 스폰 방식을 사용할 때 빈번히 발생합니다.

자세한 설명과 상황에 따른 사용 예시는 아래 게시물에서 추가적으로 확인해보실 수 있습니다:

  • 함수 실행 순서 관련 질문입니다.
    • 이 질문에서는 BeginPlay 및 NativeConstruct 등의 함수 간 호출 순서와 이에 따른 델리게이트 및 이벤트의 문제를 논의하며, 순서에 따른 초기화와 관련된 여러 문제를 다루고 있습니다.

이러한 논의들이 hush park님의 이해를 돕는 데 도움이 되기를 바랍니다. 초기화 순서가 중요한 시스템에서 함수 호출의 시점과 정확한 호출 순서를 잘 이해하는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

5.1 버전용 샘플을 찾을 수 없습니다.

0

12

1

무한맵 제작과정중에 GetWorld 가 Nullptr 을 반환합니다.

0

52

2

12강 행동트리에서 질문이 있습니다.

0

55

1

위젯 사이즈랑 위치 질문드려요.

0

84

3

행동트리의 데코레이션 관련하여 질문이 있습니다.

0

94

3

VS 2026 의 문제일까요?

0

511

2

에셋참조 블루프린트질문

0

70

2

애님 몽타주 콤보 관련질문

0

70

2

ThirdPerson CDO 에러가 생깁니다.

0

104

3

캐릭터가 움직이지 않습니다.

0

195

4

쿠킹 폴더 지정시 , Item 이외에는 지정하지 않는지 궁금합니다.

0

65

2

TSoftObjectPtr 를 사용했음에도, 메모리에 로드 됩니다.

0

101

2

7강에 나오는 생성자에 대해서 궁금합니다.

0

79

2

6강을 마무리하며 트레이스 채널 을 이해하지 못했습니다.

0

78

2

3강을 마무리 하며, 카메라가 움직이지 않습니다.

0

77

2

Use Controller Rotation 옵션값이 궁금합니다.

0

92

2

3강 입력 시스템 적용 중, 5.6 버전은 입력 매팅이 2개 입니다.

0

69

2

PlayerController 에 대헤 제가 잘못 이해한 것 같습니다.

0

82

2

13강 UpdateStat 부분에서 문제를 겪고 있습니다.

0

66

2

BP_PlayerController의 CustomEvent노드 이유가 궁금합니다.

0

69

1

콤포넌트 포인터 선언시 TObjectPtr<>과 UStaticMeshComponent* 차이점

0

77

2

CharacterMovementComponent의 RotationRate관련해서 질문이 있습니다.

0

118

2

언리얼 공부방법에 대해 질문드립니다.

0

92

2

4강 에서 이상한 그림자가 남습니다.

0

49

1