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

스킬창 UI - 7) 스킬창 UI를 이용한 스킬의 정보 표현

monstro 2025. 11. 7. 17:11
728x90
반응형

- 개요

스킬 어빌리티의 비용이나 효과를 알려주는 설명을 추가하고,

부여할 수 있는 스킬에 대해스킬창 UI에서 설명을 확인할 수 있도록 설정한다

 

- C++ 사이드

1) AuraGameplayAbility 클래스

 

 

위와 같이 5개의 함수를 추가한다

각각 다음과 같다

  • GetDescription 함수 : 현재 레벨스킬 어빌리티에 대한 설명을 가져오는 함수
  • GetNextLevelDescription 함수 : 다음 레벨스킬 어빌리티에 대한 설명을 가져오는 함수
  • GetLockedDescription 함수 : 잠겨있는 스킬 어빌리티에 대한 설명을 가져오는 함수
  • GetManaCost 함수 : 스킬 어빌리티를 발동하기 위한 비용(마나)을 가져오는 함수
  • GetCooldown 함수 : 스킬 어빌리티의 쿨타임을 가져오는 함수

 

 

스킬 어빌리티에 대한 설명을 가져오는 함수들은 위와 같이 구성하였다

스킬 설명 UI는 Rich Text를 사용하여 상황에 맞게 다른 구성을 사용하므로 <Default>와 같은 태그를 사용하여 지정한다

 

 

GetManaCost 함수의 로직은 위와 같다

GetCostGameplayEffect 함수를 호출하여 Cost GameplayEffect -> Modifier를 가져와

현재 레벨에 맞는 Cost를 가져와 반환한다

 

 

GetCooldown 함수의 로직은 위와 같다

GetCooldownGameplayEffect 함수를 호출하여 Cooldown GameplayEffect를 가져와

현재 레벨에 맞는 Cooldown을 가져와 반환한다

 

2) AuraDamageGameplayAbility 클래스

 

 

GetDamageByDamageType 함수를 위와 같이 추가한다

인자로 받은 DamageType에서 현재 레벨에 해당하는 데미지 수치를 반환한다

 

3) AuraProjectileSpell 클래스

 

NumProjectiles 멤버변수를 추가하여 생성가능한 투사체의 개수를 설정한다

 

4) AuraFireBolt 클래스

 

기존에 존재하던 화염구 스킬의 GA로 사용할 AuraFireBolt 클래스를 추가한다

위와 같이 화염구 스킬의 GA에 대한 설명을 가져오도록 구성하였다

 

 

GetDescription 함수의 로직은 위와 같다

현재 레벨에서 화염구 스킬에 대한 설명을 가져온다

스킬창 UI에서는 Rich Text를 사용하므로 태그를 통해 문자열을 지정한다

 

 

GetNextLevelDescription 함수의 로직은 위와 같다

다음 레벨에서 화염구 스킬에 대한 설명을 가져온다

동일하게 태그를 사용하여 문자열을 지정한다

 

5) AuraAbilitySystemComponent 클래스

 

 

GetDescriptionsByAbilityTag 함수의 로직은 위와 같다

인자로 넘겨준 Tag를 통해 GASpec ->스킬 어빌리티의 설명을 가져와 캐싱한다

캐싱이 성공했다면 True를 반환하고, 실패했다면 False를 반환한다

 

6) SpellMenuWidgetController 클래스

 

기존의 SpellGlobeSelectedSignature 델리게이트에 2개의 인자를 추가하여

선택된 스킬의 현재 레벨에 대한 설명다음 레벨에 대한 설명을 브로드캐스트하도록 설정한다

 

기존의 반복되는 로직을 위와 같이 수정

 

SpellGlobeSelectedDelegate 델리게이트를 브로드캐스트하는 기존의 로직을 위와 같이 수정한다

 

- 블루프린트 사이드

1) WBP_SpellMenu 위젯 블루프린트

Construct 이벤트의 2번째 시퀀스

 

Construct 이벤트의 2번째 시퀀스에 위와 같이 로직을 추가한다

선택한 스킬에 대해 현재 레벨에 대한 설명다음 레벨에 대한 설명을 UI에 반영한다

 

- 최종 실행 결과

 

728x90
반응형