- 개요
AbilitySystemGlobals 클래스는 GAS에서 사용하는 전역변수 / 전역함수를 관리하는 클래스이다
따라서 해당 클래스의 AllocGameplayEffectContext 함수를 오버라이드하여
사용자 정의 GEContext의 새로운 인스턴스를 반환한다
반환된 사용자 정의 GEContext 인스턴스를 사용하여 공격의 방어 + 크리티컬 피해를 처리한다
1) 사용자 정의 AbilitySystemGlobals 클래스
1 - 1) AuraAbilitySystemGlobals 클래스

AbilitySystemGlobals 클래스를 상속받아 AuraAbilitySystemGlobals 클래스를 생성하여 구성하였다

AllocGameplayEffectContext 함수의 로직은 위와 같은데,
새로운 AuraGameplayEffectContext의 인스턴스를 반환한다
1 - 2) DefaultGame.ini 또는 에디터

ini 파일에서 위와 같이 작성하거나, 에디터에서 AbilitySystemGlobals 클래스를 설정한다
2) 사용자 정의 AbilitySystemGlobals 클래스의 활용
2 - 1) AuraAbilitySystemLibrary 클래스

위와 같이 4개의 함수를 추가한다
- 공격을 방어하는 경우의 Getter 함수 / Setter 함수
- 크리티컬 공격을 주는 경우의 Getter 함수 / Setter 함수

Getter 함수들의 로직은 위와 같다
AuraGameplayEffectContext로부터 Getter 함수를 호출하여 값을 반환한다

Setter 함수들의 로직은 위와 같다
AuraGameplayEffectContext로부터 Setter 함수를 호출하여 값을 설정한다
2 - 2) ExecCalc_Damage 클래스


Execute_Implementation 함수에서 공격을 방어하는 확률 / 크리티컬 피해를 주는 확률의 값을
AuraAbilitySystemLibrary의 함수를 호출하여 AuraEffectContext의 멤버변수에 설정하는 로직을 추가한다
2 - 3) AuraAttributeSet 클래스

기존의 ShowFloatingText 함수에 2개의 인자를 추가한다

HandleIncomingDamage 함수의 로직에서 AuraEffectContext -> AuraAbilitySystemLibrary를 거쳐서
공격이 방어되었는지 여부 / 크리티컬 공격이 이루어졌는지 여부를 인자로 전달하도록 로직을 수정한다
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 데미지 처리 심화 - 최종) 속성 공격 / 저항의 추가와 공격 스킬의 세분화 (0) | 2025.09.14 |
|---|---|
| 데미지 처리 심화 - 4) 처리된 데미지에 따라 다른 UI 출력 (0) | 2025.09.13 |
| 데미지 처리 심화 - 2) NetSerialize 함수 오버라이드 & 사용자 정의 GEContext에 대한 복사 연산 허용 (0) | 2025.09.12 |
| 데미지 처리 심화 - 1) GameplayEffectContext의 사용과 사용자 정의 GEContext (0) | 2025.09.12 |
| 데미지 처리 - 최종) 능력치를 고려한 데미지 처리 (0) | 2025.08.30 |