- 개요
스킬 어빌리티의 비용이나 효과를 알려주는 설명을 추가하고,
부여할 수 있는 스킬에 대해서 스킬창 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번째 시퀀스에 위와 같이 로직을 추가한다
선택한 스킬에 대해 현재 레벨에 대한 설명과 다음 레벨에 대한 설명을 UI에 반영한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 스킬창 UI - 최종) 구조 변경 + 스킬 어빌리티 장착 (0) | 2025.11.08 |
|---|---|
| 스킬창 UI - 8) 스킬 타입 부여 (0) | 2025.11.08 |
| 스킬창 UI - 6) 스킬 포인트 사용 (0) | 2025.11.06 |
| 스킬창 UI - 5) 스킬 포인트와 스킬 창 UI 연결 (0) | 2025.11.02 |
| 스킬창 UI - 4) 플레이어 레벨과 스킬 연동 + 스킬과 스킬창 UI 연동 (0) | 2025.11.02 |