언리얼의 콜리전은 오브젝트 타입과 트레이스 타입으로 나뉘고 각 사항에 대해 트레이스 처리를 할 수 있다. c++ 과 BP에 대응하는 함수는 아래와 같다. 여기서는 LineTrace만을 예로들었으나 구체, 박스, 캡슐등의 트래이스 모양및 다중트래이스 처리도 할수 있으니 필요하면 찾아서 쓰자(사용법은 같다. 반환되는값의 차이.)
(ECollisionChannel? EObjectTypeQuery?? ETraceTypeQuery??? )
1. 언리얼의 기본및 사용자정의 오브잭트채널, 트레이스채널은 모두 ECollisionChannel한군데에 세팅되고 트래이스에는 이값들이 사용된다.
2. EObjectTypeQuery, ETraceTypeQuery 는 ECollisionChannel에 세팅되어 있는 값을 찾아오기위한 값들이라 생각하면 쉽다.
3. 각 Enum이 어떻게 매칭되는지에 대해 정리하자면 ECollisionChannel의 기본 채널을 재외한 사용자 생성 채널은 ECC_GameTraceChannel1 부터 생성한 순서대로 지정된다. 지정된 값은 [프로젝트폴더]/config/DefaultEngine.ini에 세팅.
EObjectTypeQuery와 ETraceTypeQuery는 각각 엔진-사용자오브젝트의 순서대로 ObjectTypeQuery1 TraceTypeQuery1 부터 순서대로 매칭된다.
추가적으로 UEngineTypes::ConvertToCollisionChannel 함수로 EObjectTypeQuery와 ETraceTypeQuery를 실제 사용되는 ECollisionChannel 값으로 가져올수 있다.
+ 추측하기 보단 UEngineTypes 클래스 내에 ConvertToObjectType 함수를 사용하자.
TArray<TEnumAsByte<EObjectTypeQuery>> arrObjectTypeQuery;
arrObjectTypeQuery.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_Vehicle));
arrObjectTypeQuery.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_PhysicsBody));
https://docs.unrealengine.com/5.0/en-US/API/Runtime/Engine/Engine/UEngineTypes/
'게임엔진 > Unreal' 카테고리의 다른 글
[Unreal] RootComponent 루트 컴포넌트 (0) | 2022.07.17 |
---|---|
[Unreal] RadialForceComponent 하중을 가하는 컴포넌트 (0) | 2022.07.17 |
언리얼엔진5 다운로드 및 4에서 업그레이드 방법 (0) | 2022.07.08 |
[Unreal] 액터 스폰과 Owner 관련, 렌더타깃 UI (0) | 2022.07.06 |
[Unreal] 컴포넌트 부착 함수와 방법 (0) | 2022.07.06 |