본문 바로가기
Unreal/기본

[Unreal] LineTrace - 피킹

by 카피마스터 2023. 8. 12.
	FHitResult hitResult;
	
	FVector startLine;
	FVector direction;

	DeprojectMousePositionToWorld(startLine, direction);

	// 끝 위치
	FVector endLine = startLine + (direction * 100000);

	// 제외시킬 액터 리스트
	TArray<AActor*> ignoreActorList;

	// 클릭 처리
	bool isHit = UKismetSystemLibrary::LineTraceSingle(
		this,
		startLine, endLine,
		UEngineTypes::ConvertToTraceType(ECollisionChannel::ECC_Visibility),
		false,
		ignoreActorList,
		EDrawDebugTrace::Persistent,
		hitResult,
		true,
		FLinearColor::Red, FLinearColor::Green, 5.0f);

 

라인을 설정하고 라인과 충돌된 대상을 찾는다

LineTraceByChannel(UKismetSystemLibrary::LineTraceSingle)

- 설정된 채널의 첫번째 히트 정보를 얻는다

- 추가 파라미터

    ETraceTypeQuery TraceChannel

        - 대상 채널 타입

        - ECollisionChannel 타입이 아니고 Trace용 채널

 

 

LineTraceForObject(UKismetSystemLibrary::LineTraceSingleForObjects)

- 설정된 오브젝트 타입의 첫번째 히트 정보를 얻는다

- 추가 파라미터

const TArray<tenumasbyte > & ObjectTypes</tenumasbyte

 

 

공통 파라미터

const UObject* WorldContextObject 

- 월드 컨텍스트

 

const FVector Start

- 라인 시작

 

const FVector End

- 라인 종료

 

bool bTraceComplex

- 복합 컬리전 테스트시 true

 

const TArray<AActor*>& ActorsToIgnore

- 충돌체크에서 무시할 actor들

 

EDrawDebugTrace::Type DrawDebugType

- 라인/히트 정보 출력 타입

ForOneFrame : 잠깐 출력후 사라짐

ForDuration : DrawTime에 설정된 시간까지만 출력후 사라짐

Persistent : 계속 출력

 

FHitResult& OutHit

- 히트 정보

 

bool bIgnoreSelf

- 자신은 히트 대상에서 무시할 것인지

 

FLinearColor TraceColor

- 라인 컬러

 

FLinearColor TraceHitColor

- 히트부분 컬러

 

float DrawTime

- 디버깅용 정보 출력 시간

 

 

 

'Unreal > 기본' 카테고리의 다른 글

[Unreal] 모듈 등록 및 사용  (0) 2023.10.03
[Unreal] Define  (0) 2023.10.01
[Unreal] 간단한 마우스 클릭으로 이동처리  (0) 2023.08.12
[Unreal] 로그 출력(UE_LOG)  (0) 2023.08.06
[Unreal] Build.cs  (0) 2023.03.26