2024-04-06
깃허브! |
---|
https://github.com/ChangJin-Lee/ARproject |
★ https://github.com/ChangJin-Lee/ToonTank |
느낀점
플레이어의 특정 메시를 GetHitResultUnderCursor로 부딪친 위치를 바라보게끔 만들게 하려고자 SetWorldRotation을 사용했다. 그리고 부딪친 위치를 메시가 바라보면 메시가 아래를 비스듬하게 바라보게 되므로 이를 위해서 FRotator(0.f,ToTarget.Rotation().Yaw, 0.f);를 사용해서 Yaw의 값만 적용이되도록 만들었다. 그리고 회전 보간을 위해서 FMath::RInterpTo을 사용해서 조금 느리게 회전이 되도록 만들었다.
void ABasePawn::RotateTurret(FVector LookAtTarget)
{
FVector ToTarget = LookAtTarget - TurretMesh->GetComponentLocation();
FRotator LookAtRotation = FRotator(0.f,ToTarget.Rotation().Yaw, 0.f);
TurretMesh->SetWorldRotation(LookAtTarget);
}
static FRotator RInterpTo
(
const FRotator & Current,
const FRotator & Target,
float DeltaTime,
float InterpSpeed
)
void ABasePawn::RotateTurret(FVector LookAtTarget)
{
FVector ToTarget = LookAtTarget - TurretMesh->GetComponentLocation();
FRotator LookAtRotation = FRotator(0.f,ToTarget.Rotation().Yaw, 0.f);
TurretMesh->SetWorldRotation(
FMath::RInterpTo(
TurretMesh->GetComponentRotation(),
LookAtRotation,
UGameplayStatics::GetWorldDeltaSeconds(this),
55.f));
}