본문 바로가기

게임프로젝트/슈팅게임

충돌처리 Collision

액터들의 충돌처리를 해줍니다.

BP_Bullet을 열고 Box Collision을 추가하고 root로 해줍니다. Shape Extent를 조정해 박스를 싸줍니다.

 

BP_Enemy를 열고 역시 BoxCollisoin을 추가하고 루트로 만들고 사이즈롤 설정합니다.

BP_Ship을 열고 같은 작업을 해줍니다.

Project Setting의 Engine>Collision 카타고리에서 ObjectChannels의 NewObjectChannel을 3개 만듭니다.

BP_Bullet열고  Box컴포넌트를 선택후 Collision Presets를 Custom ObjectType을 Bullet, Responses를 Enemy만 Overlap으로하고 나머지는 Ignore로 합니다. QueryOnly로도 문제 없지만 나중을 위해  CollisionEnable로 해둡니다.

BP_Ship을 열고 custom,  Object Type을 Player Responses는 Enemy는 Overlap 나머지는 Ignore로 합니다.

 BP_Enemy를 열고 Custom, Object Type을 Enemy, responses는 Player, Bullset을 Overlap나머지를 Ignore로 합니다.

모든 블루프린트를 컴파일 및 저장합니다.

BP_Bullet을 열고 EventActorBeginOverlap Node뒤에 Enemy를 체크하고 파괴합니다. 약간의 딜레이후 자신도 파괴합니다.

적을 제거하고난후 파티클효과를 추가해줍니다.

BP_Enemy에도 Player와 충돌할수 있게 노드를 추가합니다.

플레이 해보면 플레이어와 충돌후 에러가 나는데 사라진 플레이어(Ship)의 정보를 얻어어려고 하기 때문입니다.

GetActorofClass에서 얻은 ReturnValue를 IsValid를 이용해 검사해서 에러를 피합니다.

 

'게임프로젝트 > 슈팅게임' 카테고리의 다른 글

알파 버전 스태틱메시 교체  (0) 2025.03.10
배경 만들기  (0) 2025.03.10
Enemy, Factory 제작하기  (0) 2025.03.10
슈팅게임 - 총알발사  (0) 2025.03.10
Enhancement Input Blueprint, Pawn 이동  (1) 2025.03.10