- 개요
투사체의 CollisionChannel을 만들어 특정한 Actor에 대해서만 충돌을 할 수 있도록 진행한다
또 Niagara 모듈을 추가하여 투사체가 날아가는 동안 FX 효과를 연출한다
- 사전 작업

프로젝트의 build.cs 파일에 위와 같이 Niagara 모듈을 추가한다

프로젝트의 Project Settings에 위와 같이 투사체의 CollisionChannel을 추가한다
1) Aura 클래스

주 모듈인 Aura 클래스의 헤더 파일에 투사체에 대한 CollisionChannel에 접근할 수 있도록 전처리기를 추가한다
2) AuraProjectileSpell 클래스

SpawnProjectile 함수에서 생성하는 투사체의 Instigator를 AvatarActor인 플레이어 캐릭터로 설정한다
3) AuraCharacterBase 클래스

프로젝트에 존재하는 모든 캐릭터들이 투사체에 대해 Overlap 이벤트를 발생시킬 수 있도록 설정한다
4) AuraProjectile 클래스

생성한 투사체를 파괴시킬 수 있도록 Destroyed 함수를 오버라이드한다

투사체의 피격여부를 판단할 불리언 변수를 추가한다

투사체가 날아가면서, 또 피격하면 발생시킬 VFX와 SFX를 추가한다

생성자에 로직을 추가하여 투사체의 CollisionChannel을 투사체의 채널로 설정한다

BeginPlay 함수에서는 투사체가 날아가면서 발생시킬 SFX를 설정한다

Destroyed 함수의 오버라이드한 로직은 위와 같다
서버에서는 FX 관련 효과를 처리하지 않으므로 클라이언트에서 피격시 FX 효과를 처리한다
FX 효과를 처리한 후에 부모 버전의 Destroyed 함수를 호출한다

비워놓았던 OnSphereOverlap 함수의 로직을 위와 같이 구성하였다
우선, 투사체를 발사한 주체와 Overlap되지 않도록 얼리 리턴한다
이후 피격하는 경우의 FX 효과를 연출한다
최종적으로 서버에서는 피격후에 AuraProjectile의 인스턴스를 파괴하고,
클라이언트에서는 해당 인스턴스의 피격여부만 설정한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| RPG 직업군 - 최종) RPG 직업군 생성 및 AttributeSet 설정 (0) | 2025.08.21 |
|---|---|
| AbilityTasks - 최종) 투사체에 GameplayEffect 적용 (0) | 2025.08.18 |
| AbilityTasks - 3) 클릭한 대상을 향해 투사체와 캐릭터의 방향 일치시키기 (0) | 2025.08.17 |
| AbilityTasks - 2) AnimNotify를 사용한 이벤트 발동 + Task를 사용하여 어빌리티의 타겟 데이터 가져오기 (0) | 2025.08.16 |
| AbilityTasks - 1) GAS 프레임워크에서의 Prediction (0) | 2025.08.15 |