충돌 판정 붙이기
엔티티가 떨어지고, 부딪히고, 바닥에 멈추게 하려면 Collision(충돌 범위)과 Rigid Body(물리 몸체) 두 컴포넌트를 붙입니다. 이 페이지는 새 씬의 Box를 공중에서 떨어뜨려 Plane 위에 멈추게 하면서, 두 컴포넌트의 역할과 처음 값에서 자주 틀리는 곳을 설명합니다.
이 페이지의 실측은 2026-10-29 oasisw.ai 에디터(판 표시 OasisW 7e2aa65, macOS Chrome)에서 새 프로젝트 1개로 한 것입니다. 각 결과는 Launch한 게임에서 엔티티 위치를 0.5초 간격으로 읽어 확인했습니다. 별도 표시가 없는 동작은 1회 확인했습니다.
두 컴포넌트의 역할
| 컴포넌트 | 정하는 것 | 없으면 |
|---|---|---|
| Collision | 부딪히는 범위의 모양과 크기(Type, Half Extents 등) | 물리 계산에서 그 엔티티가 없는 것과 같습니다 |
| Rigid Body | 움직이는 방식(Static, Dynamic, Kinematic)과 무게·마찰·튕김 | Collision이 있어도 다른 물체를 막지 못했습니다. 실측에서 바닥의 Rigid Body를 끄자 상자가 바닥을 통과해 떨어졌습니다 |
떨어지는 쪽과 받치는 쪽 모두 두 컴포넌트가 필요합니다. 차이는 Rigid Body의 Type뿐입니다.
| Type | 쓰는 곳 |
|---|---|
| Static | 움직이지 않는 것(바닥, 벽). Rigid Body를 붙이면 처음 값이 Static입니다 |
| Dynamic | 중력을 받고 부딪히면 밀려나는 것(공, 떨어지는 상자) |
| Kinematic | 스크립트나 애니메이션으로 움직이면서 다른 물체를 미는 것. 실측에서 Kinematic 상자를 스크립트로 옮기자 앞의 Dynamic 상자가 밀려났습니다(물리가 동작하는 방식) |
시작하기 전에
- 새 씬에는
Camera,Light,Box,Plane이 있습니다. 이 페이지는 이 넷만 씁니다. 씬 만드는 법은 씬 만들고 오가기에 있습니다. - 새 씬의
Box는Position0, 0.5, 0,Plane은Scale8, 1, 8입니다. - 컴포넌트 붙이는 기본 절차는 컴포넌트 붙이고 떼기에 있습니다.
에디터에서 직접 하기
1. 떨어질 엔티티에 Collision 붙이기
- HIERARCHY에서
Box를 고르고PositionY를4로 바꿉니다. 공중에 띄워 둡니다. - + ADD COMPONENT → Physics → Collision을 누릅니다.
COLLISION이 붙고 Type Box, Half Extents 0.5, 0.5, 0.5로 나옵니다. 크기 1인 Box와 딱 맞는 값입니다. 뷰포트에서는 엔티티에 초록 윤곽이 생깁니다.
2. 물리 모듈 가져오기(프로젝트에 한 번)
새 프로젝트에서는 COLLISION 아래에 빨간 상자와 Ammo module not found가 나옵니다. 물리 계산에 쓰는 모듈(Ammo)이 프로젝트에 아직 없다는 뜻입니다.
- IMPORT AMMO를 누릅니다.
- ASSETS에
Ammo폴더(에셋 4개)가 생기고 빨간 상자가 사라집니다.
3. Rigid Body를 붙이고 Dynamic으로 바꾸기
- 같은
Box에 + ADD COMPONENT → Physics → Rigid Body를 누릅니다. RIGIDBODY는 컴포넌트 목록 맨 아래에 붙습니다. - Type이
Static인 것을 확인하고, 목록을 열어 Dynamic을 고릅니다.
Dynamic으로 바꾸면 Mass(무게, 처음 1), Linear Damping·Angular Damping(움직임·회전이 줄어드는 정도), Linear Factor·Angular Factor(축마다 움직임·회전을 허용하는 정도), Gravity Scale(중력 배율) 칸이 더 나옵니다. Friction(마찰)과 Restitution(튕김)은 두 Type 모두 처음 값이 0.5입니다.
4. 받치는 엔티티에도 붙이고 충돌 범위 맞추기
바닥에 아무것도 붙이지 않고 Launch하면 Box는 바닥을 뚫고 끝없이 떨어집니다(실측: 1초에 약 70씩 내려감). 바닥에도 두 컴포넌트를 붙입니다.
Plane을 고르고 Collision과 Rigid Body를 붙입니다. 바닥은 움직이지 않으므로 Rigid Body의 Type은 처음 값Static그대로 둡니다.- 뷰포트를 봅니다.
Plane가운데에 작은 파란 상자만 보입니다. 이것이 지금의 충돌 범위입니다.
Plane은 Scale이 8, 1, 8이라 보이는 바닥은 8×8입니다. 그러나 충돌 범위는 Scale을 따라 커지지 않아서 가운데 1×1만 덮습니다. 실측에서 이 상태로 두 가지를 확인했습니다.
Box를 가운데(X 0)에서 떨어뜨리면 Y1.00에 멈췄습니다. 충돌 상자의 윗면이 바닥 표면보다 0.5 높아서, 상자가 바닥에서 0.5 떠 보입니다.Box를 X3으로 옮겨 떨어뜨리면 바닥을 뚫고 떨어졌습니다. 보이는 바닥 위지만 충돌 범위 밖이기 때문입니다.
충돌 범위를 보이는 바닥에 맞춥니다.
Plane의 COLLISION에서 Half Extents를4, 0.5, 4로 바꿉니다. Half Extents는 가운데에서 각 방향으로 뻗는 길이입니다. 그래서 너비 8을 덮으려면 절반인 4를 넣습니다.- Position Offset Y를
-0.5로 바꿉니다. 높이 1인 충돌 상자를 0.5 내려, 윗면을 바닥 표면(Y 0)에 맞춥니다.
5. Launch로 확인하기
Launch를 누릅니다. Box가 X 3에서 떨어져 바닥 표면 위(Y 0.50)에 멈췄습니다.
충돌 범위의 모양 고르기
COLLISION의 Type에서 모양을 고릅니다. 목록에는 Box, Sphere, Capsule, Cylinder, Mesh, Compound, Cone이 있습니다. 처음 값은 엔티티 모양과 관계없이 Box였습니다(구에 붙여도 Box). 엔티티 모양과 가장 가까운 것을 고르고, 뷰포트의 윤곽이 엔티티와 겹치는지 봅니다.
Type에 따라 칸이 바뀝니다. Sphere는 Radius, Capsule·Cylinder는 Radius·Height·Axis, Mesh는 Convex Hull과 모델을 고르는 Model Asset·Render Asset 칸이 나옵니다. 칸 전체는 Rigid Body·Collision 속성에 있습니다.
Box가 아닌 모양도 Scale을 따라 커지지 않습니다. 2026-10-30 실측에서 Scale 2, 2, 2인 Dynamic 엔티티에 Sphere(Radius 0.5)를 주자 높이 0.5에 멈췄고, 보이는 모양의 절반이 바닥에 묻혔습니다. Box(Half Extents 0.5)도 같았습니다(각 1회). 크기를 키운 엔티티는 Radius·Height도 보이는 크기에 맞춰 바꿉니다.
AI에게 맡기기
AI는 게임을 만들 때 물리 컴포넌트를 스스로 붙입니다. 작업 기록에 ✓ Plane 물리(static) 같은 줄이 남습니다. 손으로 만든 장면에 물리를 붙여 달라고 할 때는 어떤 엔티티가 움직이고 어떤 엔티티가 받치는지를 적고, 범위를 맞춰 달라고 함께 적습니다.
Box가 공중에서 떨어져 Plane 위에 멈추게 해 주세요. Box는 떨어지는 물체, Plane은 움직이지 않는 바닥입니다. Plane의 충돌 범위가 보이는 바닥 전체를 덮게 해 주세요. 요청한 것 외에는 손대지 마세요.작성 대기 위 요청문을 현재 판에서 3회 보내 결과(Type, Half Extents, Ammo 가져오기 여부) 기록
확인하기
- ASSETS에
Ammo폴더가 있습니다. - 움직이는 엔티티는 Rigid Body Type이
Dynamic, 받치는 엔티티는Static입니다. - 받치는 엔티티를 고르면 뷰포트의 파란 충돌 범위가 보이는 모양 전체를 덮고, 윗면이 표면과 맞습니다.
- Launch해서 떨어지는 엔티티가 표면 위에 멈추는지 봅니다. 가장자리 근처에서도 떨어뜨려 봅니다.
- 뷰포트 오른쪽 위 Cameras 목록에서 Physics Edit Mode를 켜면 고르지 않은 엔티티까지 모든 충돌 범위가 색 입힌 상자로 한꺼번에 보입니다(맨 위 줄과 왼쪽 도구 줄). 끄면 고른 엔티티의 범위만 보입니다.
막혔을 때
| 증상 | 원인 | 해결 |
|---|---|---|
| Launch해도 엔티티가 공중에 떠 있다 | Ammo가 없거나 Rigid Body Type이 Static입니다 | IMPORT AMMO를 누르고, Type을 Dynamic으로 바꿉니다 |
| 엔티티가 바닥을 뚫고 끝없이 떨어진다 | 바닥에 Collision이나 Rigid Body가 없거나 꺼져 있습니다 | 바닥에 두 컴포넌트를 붙이고 둘 다 ON인지 봅니다 |
| 가운데에서는 멈추는데 가장자리에서는 뚫고 떨어진다 | 충돌 범위가 엔티티 Scale을 따라 커지지 않습니다 | Half Extents를 보이는 크기의 절반으로 바꿉니다 |
| 엔티티가 바닥에서 조금 떠서 멈춘다 | 충돌 상자의 윗면이 바닥 표면보다 높습니다 | Position Offset Y를 Half Extents Y만큼 내립니다(예: -0.5) |
| 둥근 엔티티 주위에 파란 상자가 보인다 | Collision Type의 처음 값이 Box입니다 | Type을 Sphere 등 모양에 맞게 바꿉니다 |
| 에디터 Launch에서는 되는데 공개 주소에서는 움직이지 않는다 | 공개 빌드에 물리 모듈이 빠진 사례가 있습니다(2026-10-26) | 게임 공개하기의 주의를 봅니다 |