블렌더에서 만든 벽이나 상자를 유니티에 배치했는데 플레이어가 그대로 통과할 수 있습니다. 화면에 모델이 보인다고 충돌 영역까지 자동으로 만들어지는 것은 아닙니다. Collider 존재 여부 → 충돌 형태 → Trigger·레이어 → 이동 방식 순서로 확인하세요.
이 글은 유니티의 3D 물리 환경을 기준으로 설명합니다. 2D 게임의 Collider 2D는 별도의 물리 시스템을 사용하므로 3D Collider와 같은 방식으로 섞어 설정하지 않습니다.
1. Mesh Renderer와 Collider의 역할 구분하기
Mesh Renderer는 모델을 화면에 표시하고 Collider는 물리 충돌에 사용할 영역을 정의합니다. 외형은 세밀하게 만들더라도 충돌 영역은 단순한 상자로 충분할 수 있습니다.
Hierarchy에서 실제 모델 계층을 펼치고 어떤 오브젝트에 Collider가 있는지 확인하세요. 부모에는 없고 자식에만 있을 수도 있습니다. 같은 영역에 Collider를 중복 추가하기 전에 현재 계층부터 살펴봅니다.
| 컴포넌트 | 역할 |
|---|---|
| Mesh Renderer | 메시 외형 표시 |
| Box·Sphere·Capsule Collider | 단순한 3D 충돌 영역 |
| Mesh Collider | 메시를 사용하는 충돌 영역 |
| Rigidbody | 물리 운동을 처리하는 몸체 |
정적 벽에는 Collider가 있어도 Rigidbody가 없을 수 있습니다. 반대로 움직이는 물리 소품은 Rigidbody와 충돌 형태를 함께 정해야 합니다. 유니티 공식 Collider 소개
2. 상자 소품에는 Box Collider부터 비교하기
단순한 상자라면 Add Component → Box Collider를 추가하고 Center와 Size를 확인합니다. Scene 창의 Gizmos와 Edit Collider를 사용해 외형에 맞는 충돌 범위를 살펴보세요.
예를 들어 손잡이가 달린 상자는 작은 손잡이까지 정밀하게 충돌할 필요가 없을 수 있습니다. 플레이어가 실제로 접촉할 본체를 기준으로 충돌 크기를 정하면 테스트 범위를 줄일 수 있습니다.
단순 Collider가 세밀한 메시와 정확히 일치해야 하는 것은 아닙니다. 실제 플레이에서 벽을 통과하지 않고, 불필요한 틈에 걸리지 않는지가 중요합니다.
3. 여러 Collider로 복잡한 소품 근사하기
책상처럼 다리 사이가 비어 있어야 하는 모델은 큰 Box Collider 하나로 덮으면 빈 공간까지 막힐 수 있습니다. 상판과 다리에 필요한 충돌 영역을 나누는 방법을 검토하세요.
| 소품의 사용 형태 | 검토할 충돌 형태 |
|---|---|
| 단순한 상자 | Box Collider |
| 긴 기둥 | Capsule 또는 Box Collider |
| 다리 사이가 열린 책상 | 필요한 부분의 복수 단순 Collider |
| 움직이지 않는 복잡한 지형 | 필요한 범위의 Mesh Collider |
움직이는 하나의 몸체에 여러 Collider를 사용할 때는 일반적으로 루트의 Rigidbody에 자식 Collider들을 연결하는 복합 구조를 사용합니다. 각 부품에 Rigidbody를 무조건 추가하면 따로 움직이는 몸체가 될 수 있습니다. Collider 종류와 복합 구조 공식 안내
4. Mesh Collider와 Convex의 한계 확인하기
Mesh Collider는 메시 형태를 충돌에 사용할 수 있지만 단순 Collider보다 계산과 관리 부담이 커질 수 있습니다. 정밀함이 실제 플레이에 필요한 부분부터 사용 여부를 판단하세요.
물리로 움직이는 non-kinematic Rigidbody에 Mesh Collider를 연결하려면 Convex 조건을 확인해야 합니다. Convex는 볼록한 형태를 기준으로 하므로 원래 메시의 구멍이나 오목한 부분이 그대로 유지되지 않을 수 있습니다. 공식 Collider 종류 안내
문틀 전체를 Convex 하나로 처리하면 통로까지 막힐 수 있습니다. 문틀의 양쪽 기둥과 위쪽 부분을 단순 Collider로 나누는 방식을 비교하세요. 구조 변경 후에는 실제 플레이어 크기로 통과 여부를 확인합니다.
5. Is Trigger와 충돌 레이어 확인하기
충돌 영역이 있어도 Is Trigger가 켜져 있으면 일반적인 물리 벽처럼 막는 대신 겹침을 감지하는 용도로 사용됩니다. 벽인지 감지 구역인지 의도를 먼저 정하세요.
Project Settings의 Physics에서 Layer Collision Matrix를 확인하고 플레이어와 모델 레이어가 충돌하도록 설정되어 있는지 살펴봅니다. 특정 모델만 통과한다면 해당 모델의 레이어와 자식 Collider 활성 상태부터 비교합니다.
| 점검 항목 | 확인 질문 |
|---|---|
| Collider 활성화 | 체크가 켜져 있고 오브젝트가 활성 상태인가? |
| Is Trigger | 막는 벽이 아니라 감지 영역으로 설정됐는가? |
| 레이어 | 플레이어와 충돌을 허용하는 조합인가? |
| 크기와 위치 | 실제 메시 주변에 충돌 영역이 있는가? |
6. 플레이어 이동 방식까지 확인하기
Collider 설정이 정상이어도 플레이어 이동 코드가 위치를 강제로 변경하면 원하는 충돌 처리가 되지 않을 수 있습니다. Rigidbody 이동인지 CharacterController 이동인지, Transform 위치를 직접 바꾸는지 구분하세요.
속도가 빠를 때만 통과한다면 물리 이동과 충돌 검출 방식도 점검할 필요가 있습니다. 이것은 정적인 벽에 Collider 하나를 추가하는 작업과 다른 문제입니다. 근거 없이 모든 오브젝트에 같은 충돌 검출 설정을 적용하지 않습니다.
원인을 나누려면 간단한 Cube 바닥 위에 Rigidbody와 Collider를 가진 테스트 소품을 떨어뜨려 볼 수 있습니다. 바닥과는 충돌하는데 기존 플레이어만 통과한다면 플레이어 쪽의 이동과 레이어를 확인할 단서를 얻습니다.
7. 충돌 검증은 실제 플레이에서 마무리하기
Scene 창의 초록색 윤곽이 메시와 비슷하다는 것만으로 검증이 끝나지는 않습니다. 플레이 모드에서 앞·옆·모서리 방향으로 접근하고 문틀이나 책상 틈을 통과해 보세요.
- 벽을 통과하지 않는가?
- 비어 있어야 할 통로가 막히지 않는가?
- 눈에 안 보이는 과도한 영역에 걸리지 않는가?
- 물리 소품과 플레이어 모두에서 의도대로 동작하는가?
모델 자체의 크기가 틀리다면 스케일 점검 글부터 확인하세요. Collider 크기를 임시로 키우기 전에 원본과 부모 배율이 맞는지 먼저 비교하는 것이 좋습니다.
