캐릭터 Forward 기준에서 타겟 위치가 몇도에 있는지 알려주는 코드다.
아래 사진을 보면 이해가 빠르다.
왼쪽은 음수, 오른쪽은 양수, 플레이어 Forward 기준으로 각도를 알려줌.

float CalcForwardToTargetDegree(FVector TargetLocation)
{
FVector OwnerLocation = OwnerCharacter->GetActorLocation();
//타겟을 향하는 벡터 계산
FVector ToTargetVec = (TargetLocation-OwnerLocation);
//Z 축을 소거함 (추후 따로 구하기 위해)
ToTargetVec*= FVector(1.f, 1.f, 0.f);
//정규화
ToTargetVec.Normalize();
//캐릭터 기준 Forward Vector
FVector OwnerForwardVec = OwnerCharacter->GetActorForwardVector();
//각도를 찾기 위해 내적 (결과는 cos 세타)
float InnerProduct = FVector::DotProduct(OwnerForwardVec,ToTargetVec);
//Arc Cosine (결과는 Unsigned Degree)
float TargetDegree = UKismetMathLibrary::DegAcos(InnerProduct);
//부호를 찾기 위해 외적
FVector OutterProduct = FVector::CrossProduct(OwnerForwardVec,ToTargetVec);
//Yaw 기준 부호 감별을 위해 Z 부호를 가져옴
float DegSign = UKismetMathLibrary::SignOfFloat(OutterProduct.Z);
//최종 결과로 각도에 부호를 곱해 왼쪽인지 오른쪽인지를 포함해 -180 ~ 180 도의 각도를 가져옴
float Result = TargetDegree*DegSign; return Result;
}