본문 바로가기
[ CODING STUDY ]/》언리얼엔진5 실습

언리얼엔진5 c++ HUD Widget

by MRG 2024. 4. 22.
728x90
반응형

 

▣ 먼저 Widget Blueprint를 생성하고 CrossHair 이미지를 넣어 컴파일 저장합니다. 

 

 

▣ Build.cs로 코드로 가서 UMG 키워드와

PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); 주석을 해제합니다.

이 두가지는 UMG에 대한 코드를 사용하기 위함입니다. 

 

 

▣ .h 헤더파일로 가서 두 개의 유저위젯 변수를 추가합니다. 

 

▣ TSubclassOf는 UClass 유형의 안전성을 보장해 주는 템플릿 클래스입니다. 예를 들어 디자이너가 대미지 유형을 지정하도록 해주는 프로젝타일 클래스를 제작 중이라 가정합시다. 그냥 UPROPERTY 유형의 UClass를 만든 다음 디자이너가 항상 UDamageType 파생 클래스만 할당하기를 바라거나, TSubclassOf 템플릿을 사용하여 선택지를 제한시킬 수도 있습니다. 그 차이점은 아래 코드와 같습니다:

 

 

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/TSubclassOf/

 

TSubclassOf

 

docs.unrealengine.com

 

 

▣ .cpp 파일로 와서 UserWidget.h 헤더를 추가합니다.

 

 

▣ 그리고 HUD변수에 위젯블루프린트 Class를 가져와서 저장하고 위젯을 보이게 하는 코드를 완성합니다.

FClassFinder<>경로지정 시 WidgetBlueprint가 앞에 들어가고 매트 뒤에 _C를 붙여야 오류를 방지할 수 있습니다. 

 

https://docs.unrealengine.com/4.26/en-US/API/Runtime/UMG/Blueprint/UUserWidget/AddToViewport/

 

UUserWidget::AddToViewport

Adds it to the game's viewport and fills the entire screen, unless SetDesiredSizeInViewport is called to explicitly set the size.

docs.unrealengine.com

 

https://docs.unrealengine.com/4.27/en-US/API/Runtime/UMG/Blueprint/CreateWidget/

 

CreateWidget

 

docs.unrealengine.com

 

 

▣ 이 블루프린트와 동일한 작업이라고 생각하고 코드를 작성하면 이해하기가 쉽습니다.

 

 

▣ 그리고 키를 누르면 함수가 호출되는 코드에 HUD 위젯이 사라지는 코드도 추가합니다. 

 

https://docs.unrealengine.com/4.27/en-US/API/Runtime/UMG/Blueprint/UUserWidget/RemoveFromViewport/

 

UUserWidget::RemoveFromViewport

Removes the widget from the viewport.

docs.unrealengine.com

 

 

▣ 컴파일 저장 후 플레이하면 CrossHair가 나타나는 걸 확인할 수 있고 키를 누르면 사라지는 것도 확인할 수 있습니다.

728x90
반응형

댓글