Unity 물리 바디 타입
Source: Dev.to
Static Bodies
Static bodies는 완전히 움직이지 않습니다. 씬에 배치되면 위치와 회전이 고정된 채로 남습니다. 힘이나 충돌에 반응하지 않지만, 다른 객체가 이들과 충돌할 수 있습니다.
Key Characteristics
- 3D에서는
Rigidbody가 필요 없으며 collider만 있으면 충분합니다 - 2D에서는
Rigidbody2D에bodyType = Static을 사용합니다 - 성능에 최적화되어 있어 Unity가 위치를 다시 계산할 필요가 없습니다
Ideal for
- 벽, 바닥, 지형, 배경 구조물 등
Kinematic Bodies
Kinematic bodies는 물리 힘이나 충돌에 스스로 반응하지 않지만, 움직일 경우 Dynamic bodies에 영향을 줄 수 있습니다. 스크립트를 통해 이동합니다(예: transform.position을 변경하거나 속도를 설정).
Key Characteristics
Rigidbody(3D)에서는isKinematic = true를,Rigidbody2D(2D)에서는bodyType = Kinematic을 설정합니다- 중력이나 충돌의 영향을 받지 않습니다
Useful for
- 엘리베이터, 문, 컨베이어 벨트, 이동 플랫폼 등
Dynamic Bodies
Dynamic bodies는 물리 엔진에 의해 완전히 시뮬레이션됩니다. 중력, 힘, 충돌 및 기타 물리적 상호작용에 반응합니다. 씬에서 가장 “생동감” 있는 객체들입니다.
Key Characteristics
Rigidbody(3D) 또는Rigidbody2D(2D)가 필요합니다- 2D에서는
bodyType = Dynamic을 사용합니다 AddForce, 속도, 질량, 마찰 등에 반응합니다
Ideal for
- 플레이어, 적, 떨어지는 상자 등 물리적으로 움직이는 모든 객체
Choosing the Right Type
- Static – 절대 움직이지 않는 모든 것에 사용합니다.
- Dynamic – 완전한 물리 상호작용이 필요할 때 사용합니다.
- Kinematic – 물리 영향을 받지 않는 스크립트 기반 또는 수동 이동이 필요할 때 사용합니다.