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

몬스터 근접 공격 - 1) 근접 공격 GameplayAbility 생성

monstro 2025. 9. 26. 12:19
728x90
반응형

근접 공격을 수행하는 GameplayAbility 클래스를 생성한다

해당 GA는 캐릭터의 RPG 직업군에 따라 다르게 부여되며 이전과 동일하게 Tag를 통해 발동한다

 

1) AuraGameplayTags 클래스

새로운 멤버변수

 

InitializeNativeGameplayTags 함수에 로직 추가

 

Tag를 새롭게 추가하고 해당 Tag를 지닌 GA를 발동하여 적을 공격한다

 

2) AuraMeleeAttack 클래스

 

근접공격은 피해를 주는 행위이므로 AuraDamageGameplayAbility 클래스를 상속받아 생성한다

 

3) AuraAbilitySystemLibrary 클래스

인자를 추가

 

로직을 추가

 

캐릭터가 기본적으로 갖고 있어야 할 GA를 부여하는 GiveStartupAbilities 함수를 위와 같이 수정한다

직업군에 맞는 GA를 부여해야 하므로 CharacterClassInfo를 가져오고

CharacterClassInfo에서 CharacterClassDefaultInfo를 가져와 캐릭터의 레벨에 맞게 기본적인 GA를 부여한다

 

4) AuraEnemy 클래스

 

수정한 함수에 맞게 기존의 로직을 수정한다

 

5) 언리얼 에디터

5 - 1) GA_MeleeAttack 블루프린트

 

AuraMeleeAttack 클래스를 상속받은 블루프린트를 생성한다

간단하게 GA가 발동되면 자신의 위치 디버그 스피어를 그리도록 로직을 구성한다

 

 

해당 GA 블루프린트가 갖고 있어야 할 GameplayTag를 위와 같이 설정한다

 

5 - 2) DA_CharacterClassInfo 데이터애셋

 

근접공격을 수행하는 직업군인 Warrior에서 5 - 1)에서 생성한 블루프린트기본적으로 사용하도록 설정한다

 

5 - 3) BTT_Attack 블루프린트

 

Behavior Tree에서 수행하는 Task인 BTT_Attack 블루프린트의 로직을 위와 같이 변경한다

로컬 변수인 Attack Tag5 - 1)의 블루프린트에서 설정한 Tag와 동일하도록 설정한다

 

- 최종 실행 결과

 

728x90
반응형