[ Unity Component ] Rigidbody

Rigidbody : GameObject 가 물리 제어로 동작하게 합니다. Rigidbody는 힘과 토크를 받아 해당 Object가 사실적으로 움직이게 해줍니다. 이 Component 가 포함된 Object는 중력의 영향을 받아야 하며, Scripts 를 통해 가해진 힘으로 움직이거나, NVIDIA Physx 물리 엔젠을 통해 다른 Object와 상호 작용해야 합니다.


Properties
Mass : 해당 오브젝트의 질량입니다.

Drag : 오브젝트가 힘에 의해 움직일 때 공기 저항이 영향을 미치는 정도를 나타냅니다.
Angular Drag : 오브젝트가 토크로 회전할 때 공기 저항이 미치는 정도를 나타냅니다.
0 이면 공기 저항이 없으며 Infinity 면 오브젝트가 공기 저항에 의해 즉시 정지합니다.

Use Gravity : Check 상태면 중력의 영향을 받습니다

Is Kinematic : Check 상태면 오브젝트는 물리 엔진으로 제어되지 않으며, 오직 Transform 조작으로만 움직입니다.

Interpolate interpolation선형보간 : Rigidbody의 움직임을 보정하는 옵션입니다.
 - None : 보간 비적용
 - Interpolate : 이전 프레임의 Transform 맞게 부드럽게 처리합니다.
 - Extrapolate : 다음 프레임의 Transform을 추정해 부드럽게 처리합니다.

Collision detection : 빠르게 움직이는 오브젝트가 충돌 감지 없이 통과하는걸 방지합니다.
 - Discrete : 불연속 충돌 검사를 사용합니다. ( Default )
 - Continuous : Rigidbody 가 없는 정적 메시 콜라이더에 연속 충돌 검사를, Continuous Dynamic 으로 설정된 Rigidbody 와 연속 충돌 검사를 사용합니다. 다른 Rigidbody 와는 불연속 충돌 검사를 합니다. ( 연속 충돌 검사는 물리 퍼포먼스에 큰 영향을 줍니다. )
 - Continuous Dynamic :  Continuous 및 Continuous Dynamic 으로 설정된 Rigidbody 에 연속 충돌 검사를 사용합니다. 또한 Rigidbody가 없는 정적 메시 콜라이더에도 연속 충돌 검사를 씁니다. 그 외 다른 콜라이더에는 불연속 충돌 검사를 사용합니다.

Constraints : Rigidbody에 의한 Transform 값 변경의 제약사항입니다.
 - Freeze Position : 월드 좌표계의 X,Y,Z 축에서 이동하는 Rigidbody를 선택적 중지
 - Freeze Rotation : 로컬 좌표계의 X,Y,Z 축에서 회전하는 Rigidbody를 선택적 중지

 *연속 충돌 검사Continuous Collision Detection : 오브젝트가 너무 빠르면 한 프레임 전에는 Collider 의 앞에 있다가 다음 프레임에 Collider의 뒤로 지나쳐 버리는 현상이 발생한다. 충돌 검사가 되지 않는 것인데, 연속 충돌 검사를 활성화 하면 이를 방지한다. 연속 충돌 검사는 Box, Sphere, Capsule Collider 만 지원된다. 또 다른 방법으로는 타임 스탭 값을 조정하는 방안을 고려 할 수 있다.