
PerformMeleeDamage()가 실행되지 않아서 디버그용으로 설정한 Trace 동작과정이 보이지 않았다.PerformMeleeDamage()가 두 번 실행되서 서버의 캐릭터가 공격을 두 번 받는 상황이 생겼다.PerformMeleeDamage() 함수가 정상적 실행이 되지 않았다.void UAO_DamageComponent::PerformMeleeDamage(TSubclassOf<UGameplayEffect> DamageEffectClass, float DamageAmount,
FVector TraceStart, FVector TraceEnd, float TraceRadius)
{
if (!GetOwner()->HasAuthority())
{
AO_LOG_NET(LogKH, Warning, TEXT("PerformMeleeDamage called from non-authority actor"));
return;
}
...
}
-> 근데 해당의 경우를 테스트하기 위해서 서버를 검사하는 로직에서 확인을 해보니 서버에서 실행할 때, 해당 검사에 걸리는 경우가 있었다. 서버에서 실행을 노티파이는 정상적으로 작동을 하는데, !HasAuthority()에 걸리는 것은 뭔가 이상하다고 생각을 해서 다양한 테스트를 해봤다.
PerformMeleeDamage()를 실행시키기 위해서 노티파이에서 Server가 아니라면 ServerRPC를 통해 데미지 로직을 서버로 보내버리게끔 했다.Run Under One Process 옵션을 확인했더니 해당 옵션이 켜져있었다.