1. 주술사의 소환수 숫자 감소
Aura 캐릭터가 주술사의 소환수를 죽이면 주술사 내부의 미니언 카운트가 1씩 감소하고, 1보다 적게 되면 추가적으로 SummonAbility를 실행하여 추가적인 소환수를 소환하게 될 것이다.
액터를 소환하고 해당 액터를 취해 On Destroyed 이벤트를 바인딩한다.
소환사를 가져와 미니언 숫자를 -1만큼 증가시킨다.
- 멤버 변수 : 미니언 숫자가 줄어들지 않으면
GA_SummonAbility의 인스턴싱 정책은 Instanced Per Execution(어빌리티 실행마다 인스턴스 생성)으로 되어있으므로, 어빌리티가 종료되며 인스턴스가 제거되기 때문에 이벤트가 호출되지 않고 있다.
따라서 인스턴싱 정책을 Instanced Per Actor(액터마다 인스턴스 생성)으로 교체한다.
Instanced Per Actor의 특징 상 액터가 파괴되기 전까지 인스턴스가 유효(멤버 변수를 가지고있음)하므로 End Ability 노드를 두어 어빌리티가 끝날 때 멤버 변수를 초기화한다.
2. 투사체 각도 조절
(1) AuraProjectileSpell
적 또는 Aura 캐릭터가 투사체를 발사할 때 투사체의 벡터가 소켓에서 Location으로 향하고 있다.
일반적으로 캐릭터의 피벗은 발바닥에 위치하므로 투사체가 대상의 바닥으로 떨어지게 된다.
이를 수정하여 불리언 true or false 여부에 따라 투사체 발사 각을 조정할 수 있도록 수정한다.
UFUNCTION(BlueprintCallable, Category="Projectile")
void SpawnProjectile(const FVector& ProjectileTargetLocation, const FGameplayTag& SocketTag, bool bOverridePitch = false , float PitchOverride = 0.f);
void UAuraProjectileSpell::SpawnProjectile(const FVector& ProjectileTargetLocation, const FGameplayTag& SocketTag, bool bOverridePitch, float PitchOverride)
{
const bool bIsServer = GetAvatarActorFromActorInfo()->HasAuthority();
if (!bIsServer)
return;
const FVector SocketLocation = ICombatInterface::Execute_GetCombatSocketLocation(
GetAvatarActorFromActorInfo(),
SocketTag);
// 소켓에서 타겟까지의 벡터의 각도만 가져옴
FRotator Rotation = (ProjectileTargetLocation - SocketLocation).Rotation();
// 높이 보정
if (bOverridePitch)
{
Rotation.Pitch = PitchOverride;
}
FTransform SpawnTransform;
SpawnTransform.SetLocation(SocketLocation);
SpawnTransform.SetRotation(Rotation.Quaternion());
이제 위 클래스를 상속받는 게임플레이 어빌리티에 대하여 블루프린트를 수정해서 Spawn Projectile 노드를 수정한다.
(2) GA_RangedAttack
적 몬스터의 원거리 공격을 담당하는 게임플레이 어빌리티이다.
각도를 적정히 수정하여 몬스터의 공격이 Aura 캐릭터에 맞도록 조정한다.
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
17-13. 전투 폴리싱 - (9) 몬스터 파이어볼트 각도, 메모리 누수, 디버그 (0) | 2025.01.09 |
---|---|
17-12. 애니메이션 - (1) 트위닝(Tweening)을 이용한 애니메이션 생성 (0) | 2025.01.09 |
17-9. AI 마법 공격 - (4) 주술사 데몬 소환 어빌리티 (0) | 2025.01.08 |
17-8. 고블린 주술사 소환수 - (2) 데몬 몬스터 폴리싱 (0) | 2025.01.08 |
17-8. 고블린 주술사 소환수 - (1) 데몬 몬스터 (0) | 2025.01.08 |