Unity 물리 설정 가이드
소개
이 문서는 Unity에서 물리 시뮬레이션 설정을 구성하는 방법을 설명합니다. 물리 설정은 게임의 현실감을 높이고 시뮬레이션의 정확성을 조정하는 데 중요한 역할을 합니다. 아래에서 각 프로퍼티와 설정의 기능을 설명하고 다양한 활용 예제를 제공합니다.
물리 설정 속성
| 속성명 | 설명 |
|---|---|
| Gravity | 모든 Rigidbody에 가해지는 중력을 설정합니다. y축에 음수값을 적용. |
| Default Material | 레퍼런스가 없는 콜라이더에 기본 물리 머티리얼을 설정합니다. |
| Bounce Threshold | 충돌하는 두 객체의 상대 속도가 이 값보다 낮을 경우 충돌하지 않음. |
| Default Max Depenetration Velocity | 객체의 최대 관통해제 속도를 정의합니다. |
| Sleep Threshold | 비키네마틱 Rigidbody가 잠자기 모드로 전환될 수 있는 에너지 임계값입니다. |
| Default Contact Offset | 충돌 체크 시 사용하는 거리로, 양수여야 하며 너무 적을 경우 지터가 발생할 수 있습니다. |
| Default Solver Iterations | 물리 프레임에서 처리하는 솔버의 기본 수를 설정합니다. |
| Enable Adaptive Force | 적응적 힘을 사용하여 더 현실적인 물리 효과를 발생시킵니다. |
| Persistent Contacts Manifold (PCM) | 더 적은 양의 컨택트를 생성하고 데이터 공유를 최적화합니다. |
| Auto Simulation | 물리 시뮬레이션을 자동으로 실행하거나 수동으로 제어할 수 있게 합니다. |
활용 예제
1. Gravity 설정
물리 게임을 만들 때, 현실적인 중력 설정을 위해 y축에 -9.81을 적용합니다.
Physics.gravity = new Vector3(0, -9.81f, 0);
2. Bounce Threshold 조정
알맞은 Bounce Threshold 값을 설정하여 충돌 후의 반동을 조절해 보세요.
Physics.bounceThreshold = 1.0f; // 너무 낮지 않은 값을 유지
3. Sleep Threshold 설정
비활성화된 Rigidbody를 효과적으로 관리하기 위해 Sleep Threshold를 0.05f로 설정합니다.
Rigidbody rigidBody = GetComponent<Rigidbody>();
rigidBody.sleepThreshold = 0.05f;
4. Adaptive Force 사용
물체의 물리적 특성을 보다 사실적으로 만들기 위해 Adaptive Force를 활성화합니다.
Physics.enableAdaptiveForce = true;
5. Contact Generation 방식
- Legacy Contacts Generation 사용:
- 이전 버전과 호환성을 위해 Legacy Contacts Generation을 유지합니다.
- Persistent Contacts Manifold 사용:
- 더 나은 충돌 피드백을 위해 PCM 방식을 사용합니다.
Physics.contactsGenerationMethod = ContactGenerationMethod.PersistentContactsManifold;
결론
Unity의 물리 설정은 게임에서 현실적인 물리 시뮬레이션을 구현하는 데 필수적입니다. 필요한 설정을 조절하여 원하는 게임플레이를 만들고, 다양한 프로퍼티를 실험하여 최상의 결과를 얻으시기 바랍니다. 더 많은 정보를 위한 매뉴얼의 물리 섹션을 참조하시기 바랍니다.