1. 플레이어 캐릭터의 아군 사격시 크래시 발생

AuraProjectile 클래스의 OnSphereOverlap 함수에서 IsNotFriend 함수를 사용하여 프렌들리를 확인하고 있다.

이 때 데미지 이펙트 스펙 핸들의 데이터가 nullptr로 나타난다.

void AAuraProjectile::OnSphereOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
	if (DamageEffectSpecHandle.Data.IsValid() && DamageEffectSpecHandle.Data.Get()->GetContext().GetEffectCauser() == OtherActor)
		return;

	// 아군 사격 방지
	if (!UAuraAbilitySystemLibrary::IsNotFriend(DamageEffectSpecHandle.Data.Get()->GetContext().GetEffectCauser(), OtherActor))
		return;

이 이유는 데미지 이펙트 스펙 핸들이 nullptr이면 반환되도록 해야 하는데 반대로 되어있기 때문이다.

	if (!DamageEffectSpecHandle.Data.IsValid() || DamageEffectSpecHandle.Data.Get()->GetContext().GetEffectCauser() == OtherActor)
		return;

두 조건 중 하나만 해당해도 반환되어야 하기 때문에 연산자도 수정한다.

 

 

2. 고블린 주술사에 Dissolve 이펙트 추가

(1) M_Shaman 머티리얼 디테일 설정

디졸브 효과를 적용하기 위한 기본 설정이다.

노드를 복사 붙여넣기 하고 핀을 올바르게 연결한다.

 

(2) 디졸브 기본 값 설정

기본적으로 녹지 않은 상태로 보이도록 디폴트 값을 지정한다.

 

 

(3) 머티리얼 인스턴스 생성 후 글로벌 파라미터 값 지정

위의 설정이 디테일 창에 뜨지 않는다면 머티리얼로 돌아가 저장 버튼을 눌러준다.

 

 

(4) BP_Shaman에 Dissolve 머티리얼 인스턴스 지정

 

스태프에 대해서도 똑같은 방법을 실시한다.