이득우의 언리얼 C++ 게임 개발의 정석
언리얼 엔진은 액터에 UI 위젯을 부착할 수 있도록 UWidgetComponent 컴포넌트를 제공한다.
언리얼 C++에서 Widget 컴포넌트를 사용하기 위해서는 UMG 모듈을 프로젝트에 추가해야 한다.
{프로젝트명}.Build.cs 파일에서 "UMG" 모듈을 추가한다.
언리얼 빌드 툴(Unreal Build Tool)은 언리얼 C++ 프로젝트를 관리한다.
UBT가 Build.cs 파일을 분석해 컴파일 설정을 조정했기 때문에, UMG 모듈의 헤더 파일 경로도 바로 쓸 수 있도록 기본 경로로 설정된다.
UMG 모듈은 UE4 프로젝트 내의 Source > Runtime > UMG 폴더에 위치한다.
캐릭터 클래스에 위젯을 추가해본다.
Widget 컴포넌트를 사용하기 위해 헤더를 포함한다.
Widget 컴포넌트를 생성하고 Mesh의 자식으로 만든다.
위젯의 Z축 위치를 조정해 Mesh의 머리 위에 오도록 한다.
UWidgetComponent->SetWidgetSpace() 함수를 이용해 스크린 상에서 항상 플레이어를 바라보고(Billboard) 일정한 크기를 유지하도록 한다.
위젯은 오브젝트가 아니므로 Class를 찾고 블루프린트 형식이므로 에셋 명 뒤에 _C를 붙여 가져온다.
UWidgetComponent->SetWidgetClass() 함수를 이용해 컴포넌트에 위젯을 지정해주고,
UWidgetComponent->SetDrawSize() 함수를 이용해 크기를 지정해준다.
캐릭터 위에 체력바 UI 위젯을 추가했다.
참고로 UWidgetComponent->SetWidgetSpace() 함수에서 위젯 공간을 EWidgetSpace::World로 설정하면 아래와 같은 모습이 된다.
- 위젯이 플레이어를 바라보지 않고 고정되어 있다.
- 멀고 가까움에 따라 크기가 일정하지 않고 원근감이 생긴다.
'Unreal Engine > 이득우의 언리얼 C++ 게임 개발의 정석' 카테고리의 다른 글
AI 컨트롤러로 이동시키기 (0) | 2023.03.12 |
---|---|
실제 체력과 UI 연동 (0) | 2023.03.11 |
체력바 UI 위젯 제작 (0) | 2023.03.11 |
액터 컴포넌트로 HP 관리 (0) | 2023.03.11 |
액터 컴포넌트로 스탯 관리 (1) | 2023.03.11 |