inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

7강 캐릭터 스탯과 위젯

22:00 부분에서 위젯과 NativeConstruct 관련 질문이 있습니다

해결된 질문

193

hush park

작성한 질문수 46

0

먼저, 강의 흐름대로 위젯 블루프린트를 하나 만든 후 'PbHpBar' f라는 ProgressBar를 추가하였으며 그 블루프린트의 부모를 ABHpBarWidget으로 설정해 둔 상태입니다.

여기서 궁금한 점은

ABHpBarWidget은 부모클래스이며, 따라서 자식클래스에서 생성한 'PbHpBar' 라는 위젯의 존재를 알지 못할텐데, 어떻게 HpProgressBar 에 'PbHpBar' 라는 위젯의 존재를 찾아서 주소를 반환할 수 있는것인지 궁금합니다.

(만약 부모자식 관계가 바뀌어있다면, 자식에서 부모의 PbHpBar 라는 녀석의 존재를 찾아 포인트를 반환하는게 논리적으로 뭔가 납득이 가는데, 강의의 내용은 마치 상속관계가 반대의 상황인데도 불구하고 가능한것 처럼 보여집니다.)

 

NativeConstruct() 라는 생성자는 제가 모르는 뭔가 특별한 기능을 가진 생성자이며, 따라서 부모클래스임에도 불구하고 자식클래스인 블루프린트 클래스에 있는 위젯의 정보들까지 미리 전부 탐색할 수 있기 때문에 자식에 있는 PbHpBar까지도 찾아서 포인터를 반환할 수 있는 것인가요?

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

답변 2

0

이득우

NativeConstruct 함수 내부에서 GetWidgetFromName 함수를 써서 해당 컨트롤과 멤버 변수와의 바인딩을 진행합니다.

void UABHpBarWidget::NativeConstruct()
{
	Super::NativeConstruct();

	HpProgressBar = Cast<UProgressBar>(GetWidgetFromName(TEXT("PbHpBar")));
	ensure(HpProgressBar);

	IABCharacterWidgetInterface* CharacterWidget = Cast<IABCharacterWidgetInterface>(OwningActor);
	if (CharacterWidget)
	{
		CharacterWidget->SetupCharacterWidget(this);
	}
}

아니면 다음과 같이 UPROPERTY에 메타정보를 추가하면 함수를 사용하지 않아도 알아서 바인딩을 진행해줍니다.

UPROPERTY(meta = (BindWidget))
TObjectPtr<class UProgressBar> PbHpBar;

0

인프런 AI 인턴

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

질문하신 내용에 대해 비슷한 주제와 관련된 답변을 여러 게시물에서 찾을 수 있었습니다. 이를 통해 이해를 돕기 위해 몇 가지 유사한 사례를 공유하고자 합니다.

  1. 플레이어 캐릭터의 블루프린트에 위젯 컴포넌트 질문입니다

    • 이 게시물에서는 블루프린트에서 위젯 컴포넌트를 다루는 방법과 관련된 문제를 다루고 있습니다. 특히 직접 UABWidgetComponent로 바꾸는 과정에서 발생할 수 있는 문제점들을 설명하고 있습니다.
    • 이미지 URL: | |
  2. 많이 어려운데, 한개씩 이해하고있는 중이라,질문입니다.

    • 여기에서는 스탯과 위젯의 초기화와 NNativeConstruct에 대한 깊이 있는 논의가 이루어지고 있습니다. 스탯과 위젯을 연결하는 방법에 대해 자세히 설명하고 있어 hush park님의 질문에 도움이 될 수 있습니다.

이 모든 답변들은 위젯과 블루프린트 간의 관계를 이해하는 데 도움을 줄 수 있으리라 생각됩니다. 부모 자식 관계에서 위젯을 어떻게 참조하는지에 대한 보다 구체적인 이해를 돕기 위해 해당 링크를 참조하시길 권장드립니다.

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

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

0

46

2

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

0

52

1

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

0

82

3

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

0

94

3

VS 2026 의 문제일까요?

0

488

2

에셋참조 블루프린트질문

0

67

2

애님 몽타주 콤보 관련질문

0

70

2

ThirdPerson CDO 에러가 생깁니다.

0

95

3

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

0

182

4

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

0

62

2

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

0

95

2

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

0

78

2

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

0

73

2

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

0

71

2

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

0

84

2

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

0

65

2

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

0

78

2

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

0

64

2

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

0

66

1

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

0

73

2

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

0

115

2

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

0

87

2

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

0

46

1

2강에서 카메라 회전안되시는분 참고

2

91

2