Unreal에서 새로운 충돌 채널 추가

250x250

Unreal에서 새로운 충돌 채널 추가

이 글은 Unreal에서 새로운 충돌 채널을 추가하는 방법에 대한 글입니다.

Trace Channel글에 대한 썸네일

Unreal Editor에서 새로운 Trace Channel 추가

Unreal Editor에서 Edit -> ProjectSettings로 들어갑니다.

Unreal Editor에서 ProjectSettings를 들어가는 방법을 보여주는 이미지

Project Settings에서 Engine/Collision으로 들어갑니다.

Engine/Collision

Engine/Collision으로 들어왔다면 Trace Channels를 추가합니다.

아래 사진은 예시입니다.

저는 Test채널을 추가했습니다.

(Default Response는 Ingnore로 설정했습니다만...이 부분은 필요에 맞게 설정하시면 됩니다. )

New Trace Channel 예시

추가후.

새로 추가한 충돌 채널 사용 예시 C++

Tick에서 SphereTraceSingle을 사용했습니다.

void ATestWorldCharacter::Tick(float DeltaSeconds)
{
	Super::Tick(DeltaSeconds);
	FVector CamFwdVec = FollowCamera->GetForwardVector();
	FVector CamLoc = FollowCamera->GetComponentLocation();
	FVector StartVec =(CamFwdVec * 800) + CamLoc;
	FVector EndVec = (CamFwdVec * 1500) + CamLoc;
	FHitResult HitResult;
	/*Unreal 에디터에서 설정한 Trace Channel*/
	ETraceTypeQuery TestTraceTarget = UEngineTypes::ConvertToTraceType(ECollisionChannel::ECC_GameTraceChannel1);
	bool IsHit =
		UKismetSystemLibrary::SphereTraceSingle(
		GetWorld(), 
		StartVec/*시작위치*/,
		EndVec/*끝위치*/,
		330.f/*Radius*/,
		TestTraceTarget/*Trace Channel*/,
		false, 
		TArray<AActor*>(), 
		EDrawDebugTrace::ForOneFrame, 
		HitResult/*Hit결과*/,
		true/*자기자신 무시 여부*/);
	if (IsHit) {
		DrawDebugSphere(
        GetWorld(), 
        HitResult.ImpactPoint, 
        30.f, 
        30.f, 
        FColor::Green, 
        false, 
        1);
	}
}

 

큐브 하나만 선택해서 새로 추가한 Collision Channel(여기서는 Test라는 이름을 가진 채널)을 Block으로 바꿔주었습니다.

실행결과

 Test Channel을 Block으로 설정된 큐브를 제외한 나머지는 Object들은 Sphere Trace에 걸리지 않습니다.

DefaultEngine.ini

프로젝트 파일 -> Config -> DefaultEngine.ini

'DefaultEngine.ini' 파일은 Unreal Engine의 다양한 설정을 저장하는 파일입니다.

이중에 ECC_GameTraceChannel은 위에서 추가했던 Trace Channel을 의미합니다.

아래 사진에서 ECC_GameTraceChannel1은 아까 예시로 추가했던 Test Channel인 것을 확인할 수 있습니다.

Designed by JB FACTORY