본문 바로가기

언리얼엔진/C++슈팅프로젝트제작

UE5 충돌처리하기 - 콜리전 채널, 프리셋 설정하기

Project Settings의 Collision탭의 Object Channes의 New Object Channel 버튼을 클릭해 Player, Enemy, Bullet을 Ignore로 만든다.

개별 Collision Response 설정하기

PlayerPawn블루프린트로 가서 디테일의 콜리전탭을 보면 Collision Presets가 OverlapAllDynamic으로 되어 있습니다.

이걸 Custom으로 변경하고 변경해도 되지만 이번에는 C++에서 변경해 보겠습니다.

APlayerPawn() 생성자에 밑의 3줄을 추가합니다.

ECC_GameTraceChannel1은 우리가 Collision에서 만든 첫번째 ObjectChannel입니다. 두번째는 끝에 2를 세번째는 끝에3을 붙이면 됩니다.

APlayerPawn::APlayerPawn()
{
 	// Set this pawn to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;
	//박스콜리전추가
	boxComp = CreateDefaultSubobject<UBoxComponent>(TEXT("boxCollision Component"));
	SetRootComponent(boxComp);
	//스태택컴포넌트메시추가
	meshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh Component"));
	meshComp->SetupAttachment(boxComp);
	boxComp->SetBoxExtent(FVector(50, 50, 50));

	firePosition = CreateDefaultSubobject<UArrowComponent>(TEXT("Fire Position"));
	firePosition->SetupAttachment(boxComp);

	//오버랩이벤트를 켠다.
	boxComp->SetGenerateOverlapEvents(true);
	//충돌 응답을 Query And Physics로 설정한다.
	boxComp->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
	//Object Type을 1번 채널(Player)로 설정한다.
	boxComp->SetCollisionObjectType(ECC_GameTraceChannel1);
}

생성자를 건드렸으니 언리얼에디터를 끄고 다시 리빌드 합니다.

PlayerPawn 블루프린트를 열고 BoxComp 디테일의 Collision이  다음과 같이 보입니다. 만일 다음과 같이 보이지 않으면

블루프린트를 지우고 PlayerPawn C++클래스를 이용해 새로 블루프린트를 만들고 소리, Bullet등을 다시 세팅해줍니다.   

MeshComp를 선택하고 메시도 다시 세팅하고 ArrowComp를 선택해 Arrow의 방향도 위를 바라보게 해줍니다.

마지막으로 BoxComp를 선택해 Enemy만 오버랩으로 설정하고 나머지는 Ignore로 설정합니다.

Player하나 정도는 이렇게 다시 만들어도 되겠지만 다른 블루프린트도 다 바꾸려면 힘드니 프로젝트 설정의 Collision탭의 Preset항목의 New를 클릭해 줍니다. 

Enemy와 Bullet의 프리셋을 다음과 같이 만들어 줍니다.

 

이렇게 프리셋을 만들어 Collision Presets를 Enemy로 바꿔주면 됩니다. 

아니면 Bullet.cpp 코드에서 생성자 맨 아래 아까 3줄 대신 아래 한줄을 넣어주고 리빌드 해주면

	boxComp->SetCollisionProfileName(TEXT("Bullet"));

프리셋이 설정되어 있습니다.

 

'언리얼엔진 > C++슈팅프로젝트제작' 카테고리의 다른 글

충돌시 파티클효과 발생  (0) 2023.10.23
UE5 충돌이벤트와 델리게이트  (0) 2023.10.21
Enemy Factory 에너미 생성 액터 제작  (0) 2023.10.19
적 방향 결정  (0) 2023.10.19
적 제작하기  (0) 2023.10.19