WIL-HUD

haura·2025년 2월 18일
0

UE5

목록 보기
12/21

언리얼 엔진 - MVC 아키텍처를 활용한 UI 시스템 구축

1. 개요

게임 프로젝트에서는 체력(Health)과 같은 속성을 화면에 표시해야 합니다. 이를 위해 언리얼 엔진에서는 위젯 블루프린트를 사용하여 데이터를 시각적으로 표현합니다. 이 문서에서는 데이터를 효율적으로 관리하고 표시할 수 있는 MVC 아키텍처 기반의 UI 시스템을 구축하는 방법을 설명합니다.

2. 위젯 시스템과 데이터 흐름

1) 위젯(Blueprint Widgets)

● UI 요소(체력 바, 아이콘 등)를 시각적으로 표현

● 언리얼 엔진에서는 UUserWidget 클래스를 기반으로 위젯 블루프린트를 생성

2) 데이터 모델(Model)

● 게임 내 속성 데이터(체력, 마나, 경험치 등)를 관리

● Attribute Set과 같은 클래스에 데이터가 저장됨

3) 위젯 컨트롤러(Widget Controller)

● 모델과 뷰(View) 사이에서 데이터 전송 및 처리

● 데이터 수집 및 계산 후, 위젯에 전달

● 사용자 입력(버튼 클릭 등)을 모델에 반영

3. MVC 아키텍처 개념

1) 모델(Model)

● 데이터 및 게임의 로직 관리

예시: 플레이어의 체력, 레벨, 마나 등

2) 뷰(View)

● 데이터를 시각적으로 표시

예시: 체력 바, 스킬 아이콘

3) 컨트롤러(Controller)

● 모델과 뷰를 연결하는 중간 역할

● 데이터 처리 및 계산, 사용자 입력 반영

예시: 버튼 클릭 시 속성 변경 처리

구조 예시

Model → Controller → View
View → Controller → Model

일방향 의존성 유지

모델 → 컨트롤러 → 뷰.

변경이 쉽게 가능하고 유지보수가 편리.

4. 위젯 컨트롤러의 역할

1) 데이터 전송

● 모델에서 데이터를 수집하여 뷰에 전달

예시: 체력 값을 가져와 체력 바에 표시

2) 사용자 입력 처리

● 버튼 클릭, 슬라이더 조정 등 사용자 입력 처리

● 입력 데이터를 모델에 반영

3) 중간 관리자 역할

● 뷰와 모델 간의 직접 의존성을 제거

● 유연한 데이터 관리 및 확장 가능

5. 구현 계획

● 커스텀 위젯 클래스 생성

UAuraUserWidget: 위젯의 기본 클래스

● 위젯 컨트롤러 클래스 생성

UAuraWidgetController: 데이터 수집 및 처리 전담

● HUD 서브클래스 생성

HUD에서 위젯 컨트롤러 및 위젯 초기화

● 데이터 바인딩 및 시각화

위젯에서 데이터를 표시하고 사용자 입력 처리

6. MVC의 장점

● 모듈화: 각 요소(Model, View, Controller)가 독립적 관리.

● 확장성: 시스템 변경 시 특정 요소만 수정하면 됨.

● 재사용성: 컨트롤러나 뷰를 다른 프로젝트에 쉽게 활용 가능.

● 유지보수 용이: 코드의 명확한 구조로 관리가 쉬움.

7. 결론 및 다음 단계

이제 우리는 MVC 아키텍처를 기반으로 UI 시스템을 설계하고 구현할 준비가 되었습니다. 다음 단계에서는:

커스텀 위젯 및 컨트롤러 클래스 생성.

HUD 클래스에서 초기화 및 데이터 바인딩 구현.

위젯에서 체력 및 마나 데이터를 시각화.

0개의 댓글