Heads-up Display의 약자. 게임 내에서 미니 맵이나 체력 등이 표시되어있는 기본적인 UI
플레이어에게 정보를 제공하기 위한 화면이다.
예시) WoW HUD

내가 표시할 내용
1. 현재 레벨
2. 남은 시간
3. 현재 스코어
언리얼에서 제공하는 HUD 시스템
UI도 플레이어 컨트롤러에 배치해야 한다. 플레이어 컨트롤러가 입력을 받고 캐릭터를 조종하기 때문에
프로젝트의 빌드 파일에 UMG 모듈을 추가해야한다.
PublicDependencyModuleNames: 프로젝트에서 필수적으로 사용하는 엔진 기능
// project.Build.cs
public class CH3_project : ModuleRules
{
public CH3_project(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"EnhancedInput",
"UMG" // 위젯 블루프린트를 사용하기 위한 모듈이 들어 있음
});
Widget Blueprint


C++
데이터 갱신-> Game State
HUD 위젯 인풋을 입력받고 관리, GameState에 위젯 넘겨주기 -> Player Controller
해당 ui요소를 눌러 details 창에서 is Variable 을 체크하면 이벤트가 활성화 된다.
여기에서 UI 이벤트와 C++ 클래스의 함수를 바인딩한다.


새 레벨이 로드될 때마다 새로 생성/초기화 되는 클래스
레벨이 바뀌어도 유지되는 클래스
위젯 컴포넌트
UI를 3D 월드에 배치할 수 있게 해주는 컴포넌트
2D UI를 3D 공간의 특정 개체 위에 붙여준다.
2D -> 3D 모드
출처: 스파르타코딩 내일배움캠프