언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

스탯창 UI - 3) AttributeInfo 데이터애셋 클래스와 BlueprintFunctionLibrary 클래스

monstro 2025. 8. 1. 21:25
728x90
반응형

- 개요

MVC 모델에서 Model의 역할을 수행AttributeInfo 데이터애셋 클래스를 생성하고 설정한다

Controller의 역할을 수행할 AttributeMenuWidgetController 클래스를 생성한다

생성한 Controller 클래스HUD에서 사용하기 위해 로직을 추가하고

각 Widget의 블루프린트에서 적합한 Controller에 접근하기 위해

BlueprintFunctionLibrary 클래스를 추가하여 필요한 블루 프린트 함수들을 정의한다

 

1) MVC 모델 - Model 생성 및 설정

1 - 1) AttributeInfo 클래스의 헤더 파일

 

AuraAttributeInfo 구조체를 사용하여 Contorller에 필요한 데이터를 전달한다

구성은 다음과 같다

  • 해당 Attribute의 GameplayTag
  • 해당 Attribute의 이름
  • 해당 Attribute에 대한 설명
  • 해당 Attribute의

 

 

AttributeInfoData Asset 클래스로서, 여러개의 AuraAttriuteInfoTArray 프로퍼티에 저장한다

FindAttributeInfoForTag 함수를 사용하여 인자로 받은 Tag일치하는 AuraAttriuteInfo를 반환한다

 

1 - 2) AttributeInfo 클래스의 cpp 파일

 

FindAttributeInfoForTag 함수의 로직은 위와 같다

TArray 프로퍼티를 순회하면서 인자로 받은 Tag일치하는 AuraAttriuteInfo를 반환한다

 

2) MVC 모델 - Controller 생성

 

스탯창 UI에 필요한 Controller 클래스를 생성하되 당장 로직을 구성하지는 않았다

 

3) HUD와 스탯창 UI의 Controller 연결

3 - 1) AuraHUD 클래스 헤더 파일

 

 

HUD스탯창 UI의 Controller를 연결하기 위한 함수와 프로퍼티를 추가하였다

 

3 - 2) AuraHUD 클래스 cpp 파일

 

GetAttributeMenuWidgetController 함수의 로직은 위와 같다

프로퍼티로 갖고 있는 Subclass를 통해 Controller를 생성하되, OwnerAuraHUD로 설정한다

이후 Controller에서 사용하는 파라미터를 설정하고 콜백함수를 연결한다

 

4) BlueprintFunctionLibrary 클래스 설정

4 - 1) AuraAbilitySystemLibrary 클래스의 헤더 파일

 

AuraAbilitySystemLibrary 클래스를 새롭게 생성하였다

함수의 구성은 현재 다음과 같다

  • MakeWidgetControllerParams : Controller필요한 파라미터를 설정하는 함수
  • GetOverlayWidgetController : Widget 블루 프린트(Overlay)에서 Controller가져오기 위한 함수
  • GetAttributeMenuWidgetController : Widget 블루 프린트(스탯창)에서 Controller가져오기 위한 함수

 

4 - 2) AuraAbilitySystemLibrary 클래스의 cpp 파일

 

MakeWidgetControllerParams 함수의 로직은 위와 같다

PlayerContoller를 가져오고 그 안에서 AuraHUD를 가져오는데 성공했다면,

인자로 받은 WidgetControllerParams의 구성요소를 설정한다

 

 

GetOverlayWidgetController 함수의 로직은 위와 같다

WidgetControllerParamsAuraHUD를 생성하고 MakeWidgetControllerParams 함수에 넘겨주어

WidgetControllerParams설정하는데 성공했다면 그 값을 이용하여

AuraHUD로부터 Overlay 위젯의 Controller를 반환한다

 

 

GetAttributeMenuWidgetController 함수의 로직은 위와 같다

 WidgetControllerParams AuraHUD를 생성하고 MakeWidgetControllerParams 함수에 넘겨주어

WidgetControllerParams 설정하는데 성공했다면 그 값을 이용하여

AuraHUD로부터 스탯창 UI의 Controller를 반환한다

 

- 최종 결과

 

위와 같이 구성한 AttributeInfo의 데이터 애셋을 생성하였다

 

 

Overlay 위젯의 블루 프린트에서 AuraAbilitySystemLibrary의 함수를 문제없이 사용할 수 있다

728x90
반응형