[UE5] DrawDebugSphere() and HitResult

ChangJin·2023년 10월 13일
0

Unreal Engine5

목록 보기
14/114
post-thumbnail

DrawDebugSphere() and HitResult

Sphere를 그려서 위치를 알수있게 해줍니다

"GrabComponentAtLocationWithRotation" 함수는 언리얼 엔진(Unreal Engine)에서 사용되는 함수 중 하나로, 오브젝트나 액터 내에서 특정 위치와 회전값을 기반으로 컴포넌트를 선택하고 상호 작용할 때 사용됩니다. 이 함수를 사용하면 게임에서 오브젝트를 플레이어가 특정 위치와 회전에서 선택하고 조작할 수 있습니다.

함수 이름: GrabComponentAtLocationWithRotation

이 함수는 특정 위치와 회전을 기반으로 액터 내에서 컴포넌트를 선택하고 그 컴포넌트에 대한 상호 작용을 수행합니다.

매개변수:

  1. Hit Component: 선택한 컴포넌트의 정보가 저장될 변수.
  2. Hit Location: 선택한 지점의 위치 정보가 저장될 변수.
  3. Hit Rotation: 선택한 지점의 회전 정보가 저장될 변수.
  4. Trace Start: 선택 과정에서 시작 지점을 지정합니다.
  5. Trace End: 선택 과정에서 끝 지점을 지정합니다.
  6. bTrace Complex: 복잡한 충돌을 검사할 것인지 여부를 결정하는 불리언 값.
  7. Actors to Ignore: 무시할 액터들의 배열.

사용 예:

cppCopy code
APlayerController* PlayerController = GetWorld()->GetFirstPlayerController();
if (PlayerController)
{
    FVector StartLocation;
    FVector EndLocation;
    FRotator PlayerViewRotation;

    PlayerController->GetPlayerViewPoint(StartLocation, PlayerViewRotation);
    EndLocation = StartLocation + (PlayerViewRotation.Vector() * MaxTraceDistance);

    FHitResult HitResult;
    bool bHit = PlayerController->GrabComponentAtLocationWithRotation(
        HitResult,
        StartLocation,
        EndLocation,
        ECollisionChannel::ECC_Visibility,
        FCollisionQueryParams::DefaultQueryParam,
        ECR_Block
    );

    if (bHit)
    {
        // 선택한 컴포넌트와 상호 작용을 수행합니다.
        AActor* HitActor = HitResult.GetActor();
        UPrimitiveComponent* HitComponent = HitResult.GetComponent();
        // ...
    }
}

설명: 위의 예시에서는 플레이어의 시점에서 시작 위치(StartLocation)와 시선 방향으로 끝 위치(EndLocation)를 계산하고, 해당 위치로부터 컴포넌트를 선택하려는 시도를 시뮬레이트합니다. 선택된 컴포넌트와 상호 작용을 수행할 수 있으며, 이는 주로 게임의 상호 작용 기능에 사용됩니다.

profile
게임 프로그래머

0개의 댓글