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

전기 광선 스킬 - 6) 전기 광선 스킬의 구현 (1)

monstro 2025. 11. 25. 15:16
728x90
반응형

- 개요

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 함수를 위와 같이 수정한다

전기 광선의 첫번째 TargetOnDeathDelegatePrimaryTargetDied 함수를 바인드한다

 

 

StoreAdditionalTargets 함수를 위와 같이 수정하여

전기 광선에 연쇄적으로 타격된 Target들OnDeathDelegate에는 AdditionalTargetDied 함수를 바인드한다

 

 

RemoveOnDeathBindingFromPrimaryTarget 함수의 로직은 위와 같다

전기 광선의 첫번째 TargetOnDeathDelegate 델리게이트에 바인드된 PrimaryTargetDied 함수를 제거한다

 

 

RemoveOnDeathBindingFromAdditionalTarget 함수의 로직은 위와 같다

연쇄적으로 타격된 Target들OnDeathDelegate 델리게이트에 바인드된 PrimaryTargetDied 함수를 제거한다

728x90
반응형