2026.01.23

박민재 (Daype)·2026년 1월 23일

학습목표

언리얼엔진의 Collision시스템 이해하기

CollisionComponent : 언리얼 엔진에서 제공하는 기본 충돌처리 컴포넌트, 기본적으로 Box, Capsule, Sphere 제공

기본적으로 제공되는 Collision 기능으로 만들 이벤트에 맞춰서 기능이용이 가능

NoCollision : 객체들과 어떠한 충돌도 사용하지않음
BlockAll : 모든 객체들과 충돌이벤트 발생
OverlapAll : 모든 객체들과 겹침 이벤트 발생
Dynamic : 키워드가 붙어있으면 동적인 객체들과의 반응만 취급
Pawn : Pawn과의 반응만 취급

대부분 많이 사용하는 설정들 위주로 설명

Custom 으로 설정할 경우 사용할 콜리전을 말그대로 커스터마이징이 가능함 이때 CollisionEnabled 옵션을 통해 사용할 콜리전 반응을 고를 수 있음.

CollisionEnabled

Collision 이벤트 바인딩

해당 콜리전 이벤트를 사용하기위해 필요 콜리전 컴포넌트를 통해 AddDynamic 사용

AddDynamic : 동적할당의 의미로 인자로 객체, 동적할당할 함수 를 전달받는데 Collision 이벤트 같은경우 이벤트 발생이 정해진 때에 일정하게 일어나는 것이 아니기 때문에 해당 이벤트가 발생할경우 엔진에서 직접호출해서 발생할 수 있도록 동적바인딩. 동적바인딩을 사용할경우 엔진이 함수를 찾아야함으로 전달할 함수에 리플렉션 등록

중첩된 Collision체크해보기

배웠던 내용을통해 두 객체의 콜리전을 완벽하게 겹치게 설정한 후 테스트

지속적 시도 결과 항상 HP가 먼저 나오는것을 확인

원인분석

현재 객체들이 동적으로 생성되는 상태가 아닌 필드위에 배치된 상태 이 경우 나중 생성된 객체의 콜리전을 우선순위로 처리하는 단계가 존재

반대로 코인을 늦게 배치한결과 Point가 먼저 나오는것을 확인할 수 있었음

검색결과 : overlap 은 충돌시스템이 "현재프레임에 겹치는 쌍을 찾고" -> "새로생긴 쌍을 등록하고" -> "BeginOverlap을 BroadCast" 하는 흐름 나중에 배치한 엑터가 레벨저장 데이터상 뒤쪽에 있기때문에 먼저 보이는 현상 발생

0개의 댓글