- 개요
FX 효과만 동작하던 이전과 다르게 실제 데미지를 주면서 마나를 소모하고
또 스킬을 사용한 이후 쿨타임을 적용하는 전기 광선 스킬을 설계한다
1) DefaultGameplayTags.ini 파일

전기 광선 스킬의 쿨타임과 관련된 GameplayTag를 추가한다
2) CombatInterface 클래스


C++과 블루프린트 모두에서 사용하면서 1 : 多 관계로 인자로 받은 Actor를 브로드캐스트하는
OnDeathSignature 델리게이트를 추가한다
또 해당 델리게이트를 반환하는 Getter 함수를 추가한다
3) AuraCharacterBase 클래스


OnDeathSignature 델리게이트를 멤버변수로 추가한다
또, 상속받은 Getter 함수를 오버라이드한다

Getter 함수에서는 해당 델리게이트를 반환한다

MulticastHandleDeath 함수를 위와 같이 수정하여 캐릭터가 쓰러지면 OnDeathDelegate를 브로드캐스트한다
4) AuraDamageGameplayAbility 클래스


GetDamageAtLevel 함수를 추가하여 스킬 어빌리티의 레벨에 비례하는 스킬의 데미지를 반환한다
5) AuraBeamSpell 클래스

위와 같이 4개의 함수를 추가한다
이때 PrimaryTargetDied 함수와 AdditionalTargetDied 함수는 블루프린트에서 오버라이드한다

TraceFirstTarget 함수를 위와 같이 수정한다
전기 광선의 첫번째 Target의 OnDeathDelegate에 PrimaryTargetDied 함수를 바인드한다

StoreAdditionalTargets 함수를 위와 같이 수정하여
전기 광선에 연쇄적으로 타격된 Target들의 OnDeathDelegate에는 AdditionalTargetDied 함수를 바인드한다

RemoveOnDeathBindingFromPrimaryTarget 함수의 로직은 위와 같다
전기 광선의 첫번째 Target의 OnDeathDelegate 델리게이트에 바인드된 PrimaryTargetDied 함수를 제거한다

RemoveOnDeathBindingFromAdditionalTarget 함수의 로직은 위와 같다
연쇄적으로 타격된 Target들의 OnDeathDelegate 델리게이트에 바인드된 PrimaryTargetDied 함수를 제거한다
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 전기 광선 스킬 - 8) 감전 + 기절 상태 부여 (1) (0) | 2025.11.29 |
|---|---|
| 전기 광선 스킬 - 7) 전기 광선 스킬의 구현 (2) (0) | 2025.11.25 |
| 전기 광선 스킬 - 5) 문제 수정 (0) | 2025.11.25 |
| 전기 광선 스킬 - 4) 전기 광선의 연쇄 충격 시스템 구현 (0) | 2025.11.23 |
| 전기 광선 스킬 - 3) 전기 광선 스킬 추가 및 FX 효과 구성 + 일부 수정 (0) | 2025.11.22 |