본문 바로가기
유니티

Unity Rigidbody, Collider

by 유니티세상 2025. 1. 23.
반응형

Rigidbody 뜻 

뜻 : 물리학에서 형태가 변하지 않는 물체를 가리키는 강체

 

Rigidbody 는 물리적인 동작(중력, 충돌, 힘, 관성 등)을 적용할 수 있게 해줍니다

 

 

특징

1. Rigidbody는 Collider와 함께 사용되며, 충돌 처리를 가능하게 합니다.

  • Rigidbody가 없으면 Collider는 고정된 물리 객체(Static Collider)로 작동하여 움직일 수 없습니다.

2. AddForce를 사용하여 특정 방향으로 힘이나 회전력을 적용할 수 있습니다.


Rigidbody의 주요 속성

1. Mass (질량)
오브젝트의 질량을 설정합니다. 값이 클수록 더 큰 힘이 필요하며, 충돌 시 반응이 더 무거워 보입니다.

  • 기본값: 1

2. Drag (저항)
공기 저항을 시뮬레이션합니다. 값이 높을수록 움직임이 더 빨리 멈춥니다.

  • Angular Drag: 회전에 대한 저항.

3. Use Gravity (중력 사용)
체크하면 오브젝트에 중력이 적용되어 아래로 떨어집니다.

 

4. Is Kinematic
체크하면 물리 엔진의 영향을 받지 않으며, 스크립트를 통해 직접 움직임을 제어할 수 있습니다.

  • 예: 애니메이션으로 제어되는 오브젝트.

5. Constraints (제약 조건)
특정 축의 위치나 회전을 고정할 수 있습니다.

  • 예: Z축 움직임을 고정하여 2D 게임에서 X, Y축만 사용.

 

Rigidbody의 주요 메서드

  1. AddForce(Vector3 force, ForceMode mode)
    특정 방향으로 힘을 가합니다.

  2. AddTorque(Vector3 torque, ForceMode mode)
    회전력을 적용합니다.

  3. MovePosition(Vector3 position)
    오브젝트를 특정 위치로 이동시킵니다. (Kinematic 상태일 때 주로 사용)

  4. MoveRotation(Quaternion rotation)
    오브젝트의 회전을 설정합니다.

  5. WakeUp() / Sleep()
    Rigidbody를 깨어나게 하거나 물리 연산에서 제외시킵니다.

Rigidbody 사용 시 주의 사항

  1. Transform.position 직접 변경 금지
    Rigidbody가 있는 오브젝트는 Transform.position을 직접 수정하지 말고, MovePosition을 사용해야 합니다.
    직접 수정하면 물리 엔진의 계산과 충돌이 불안정해질 수 있습니다.

  2. FixedUpdate 사용
    Rigidbody 관련 물리 계산은 FixedUpdate에서 처리해야 합니다.

  3. Collider와 함께 사용
    충돌 처리를 위해 반드시 Collider를 함께 추가해야 합니다.

  4. Is Kinematic vs Use Gravity
    - Is Kinematic을 활성화하면 물리 연산을 받지 않으므로, 충돌이나 중력 영향을 받지 않습니다.
    - Use Gravity는 오브젝트가 중력의 영향을 받을지 여부를 결정합니다.

 

 


Collider 뜻

뜻 : 충돌

충돌 영역(물리적 경계)를 의미한다

 

Collider가 없으면 물리 엔진은 해당 오브젝트를 "눈에 보이지 않음"으로 간주합니다.

 

 

Rigidbody와 Collider의 조합

    1. Rigidbody + Collider
      • 물리 엔진의 영향을 받고, 충돌을 처리할 수 있습니다.
      • 일반적인 물리적 오브젝트의 기본 조합.
        • 예: 떨어지는 공, 움직이는 캐릭터.
      • 충돌 처리가 이루어지려면 충돌하는 두 오브젝트 중 하나 이상이 Rigidbody를 가져야 합니다.
    2. Rigidbody만
      • 물리 엔진의 영향을 받지만 충돌 감지 불가.
        • 바닥과 충돌 없이 물체가 뚫고 지나가거나 다른 오브젝트와 상호작용하지 않습니다.
      • 특정 상황에서 사용 가능(충돌이 필요 없고, 물리적 계산만 필요한 경우).
        • 예: 단순히 중력을 받아 떨어지는 포인트.
    3. Collider만
      • 충돌 영역만 정의하며, 물리 엔진의 영향을 받지 않습니다.
      • 주로 고정된 물체에 사용됩니다.
        • 예: 벽, 바닥, 트리거(trigger).
    4. Is Kinematic + Collider
      • Rigidbody가 있지만 물리 엔진의 영향을 받지 않고, 충돌만 감지합니다.
      • 애니메이션 제어나 스크립트를 통한 직접 움직임에 사용.
        • 예: 문이 열릴 때의 애니메이션.

 

참고)

https://velog.io/@gkdms7364/Collider-Collision

반응형