https://velog.io/@whoamicj?tag=UE5
Sphere를 그려서 위치를 알수있게 해줍니다
"GrabComponentAtLocationWithRotation" 함수는 언리얼 엔진(Unreal Engine)에서 사용되는 함수 중 하나로, 오브젝트나 액터 내에서 특정 위치와 회전값을 기반으로 컴포넌트를 선택하고 상호 작용할 때 사용됩니다. 이 함수를 사용하면 게임에서 오브젝트를 플레이어가 특정 위치와 회전에서 선택하고 조작할 수 있습니다.
함수 이름: GrabComponentAtLocationWithRotation
이 함수는 특정 위치와 회전을 기반으로 액터 내에서 컴포넌트를 선택하고 그 컴포넌트에 대한 상호 작용을 수행합니다.
매개변수:
- Hit Component: 선택한 컴포넌트의 정보가 저장될 변수.
- Hit Location: 선택한 지점의 위치 정보가 저장될 변수.
- Hit Rotation: 선택한 지점의 회전 정보가 저장될 변수.
- Trace Start: 선택 과정에서 시작 지점을 지정합니다.
- Trace End: 선택 과정에서 끝 지점을 지정합니다.
- bTrace Complex: 복잡한 충돌을 검사할 것인지 여부를 결정하는 불리언 값.
- 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)를 계산하고, 해당 위치로부터 컴포넌트를 선택하려는 시도를 시뮬레이트합니다. 선택된 컴포넌트와 상호 작용을 수행할 수 있으며, 이는 주로 게임의 상호 작용 기능에 사용됩니다.
'언리얼수업 > 언리얼' 카테고리의 다른 글
231128 Widget ItemShop 수업 (1) | 2023.11.28 |
---|---|
NPC 배회기능 적추적기능 C++ (0) | 2023.11.28 |
231127 라인트레이스 (0) | 2023.11.27 |
231125 205 특강 (2) | 2023.11.25 |
231123 Widget in Actor C++ (0) | 2023.11.24 |