Unity 2D Rigidbody 안내서
이 문서는 Unity의 2D 게임 개발에서 리지드바디(Rigidbody) 컴포넌트의 사용에 대한 자세한 설명입니다. 리지드바디는 게임 객체의 물리적 행동을 제어하는 데 필수적입니다. 이번 가이드를 통해 리지드바디의 종류와 각 프로퍼티의 기능을 알아보겠습니다.
리지드바디 2D의 바디 타입
Unity에서 리지드바디는 세 가지 바디 타입을 가지고 있습니다: 정적(Static), 키네마틱(Kinematic), 동적(Dynamic). 각각의 특징은 다음과 같습니다.
1. 정적 리지드바디 2D (Static Rigidbody 2D)
- 속성: 정적 리지드바디는 시뮬레이션 중 한번도 움직이지 않는 객체입니다. 다른 물체와 충돌할 때는 무한한 질량을 가진 것처럼 행동합니다.
- 용도: 주로 게임 환경의 고정된 요소(예: 벽, 바닥 등)에 사용됩니다.
- 제한: 두 개의 정적 리지드바디가 충돌하는 것은 지원되지 않으며, 제한된 프로퍼티만 사용 가능합니다.
2. 동적 리지드바디 2D (Dynamic Rigidbody 2D)
- 속성: 이 타입은 시뮬레이션에 의해 물리적으로 움직일 수 있습니다.
- 용도: 움직이는 객체(예: 플레이어, 적 등)에 적용됩니다.
- 기본값: 리지드바디 2D의 기본 타입입니다. 모든 프로퍼티를 사용할 수 있습니다.
3. 키네마틱 리지드바디 2D (Kinematic Rigidbody 2D)
- 속성: 사용자 제어 하에서만 움직이는 리지드바디입니다.
- 용도: 게임 내에서 정해진 경로를 따라 움직이는 객체에 적합합니다.
리지드바디 2D 프로퍼티
프로퍼티 | 기능 설명 |
---|---|
Body Type | 리지드바디의 움직임 및 콜라이더와의 상호작용 설정 |
Material | 리지드바디에 연결된 모든 콜라이더의 물리 머티리얼 설정 |
Simulated | 시뮬레이션 작동 여부를 결정 |
Include Layers | 다른 콜라이더와의 충돌 여부를 결정할 때 포함할 추가 레이어 선택 |
Exclude Layers | 다른 콜라이더와의 충돌 여부를 결정할 때 제외할 추가 레이어 선택 |
정적 콜라이더 2D 생성
게임 오브젝트에 Rigidbody 2D가 없을 경우, Collider 2D는 자동으로 숨겨진 Static Rigidbody 2D와 연결됩니다. 이 방법은 많은 수의 정적 콜라이더를 생성하는 데 유용합니다.
이 외에도, 정적 리지드바디를 생성하는 방법으로는 두 가지가 있습니다:
- 개별 정적 콜라이더를 런타임에 이동/재구성: 이 경우, 각각의 Collider에 리지드바디를 추가하고 Static 타입으로 설정하는 것이 효율적입니다.
- 콜라이더 그룹 런타임에 관리: 여러 콜라이더를 한 객체의 자식으로 만들면 성능이 향상됩니다.
상호작용 및 충돌
정적 리지드바디와 키네마틱 리지드바디는 특별한 경우에 서로 상호작용할 수 있습니다. 설정에서 하나의 콜라이더를 트리거로 설정하면 충돌 시 상호작용이 발생합니다. 이 기능은 물리 계산을 보다 유연하게 사용할 수 있도록 합니다.
활용 예제
- 플랫폼 게임 만들기: 다양한 오브젝트에 키네마틱 리지드바디를 설정하여 플레이어가 이동할 수 있는 기반을 제공합니다.
- 복잡한 물리적 상호작용 구현하기: 여러 개의 동적 리지드바디를 조합하여 서로 상호작용하게 함으로써 현실감 있는 물리적 반응을 만들어낼 수 있습니다.
- 정적 배경 만들기: 배경 요소에 정적 리지드바디를 활용하면 게임 성능을 개선할 수 있습니다.
이와 같은 정보를 바탕으로 Unity에서 2D 게임을 개발할 때 리지드바디 컴포넌트를 효과적으로 활용할 수 있습니다.