Collider & Rigidbody

Clear·2025년 6월 12일

Unity Docs

Collider

Collider는 오브젝트의 물리적인 경계를 정의해주며,
충돌 감지, 트리거 이벤트, 중력 반응의 기준이 되는 영역입니다.


주요 요소

  • isTrigger
    물리 충돌 대신 이벤트 감지만 수행 OnTrigger 계열 사용
  • material
    마찰, 반발력 등을 정의하는 물리 재질
  • center
    Vector3 충돌 영역 중심 위치
  • size, radius, height
    충돌 영역 크기 Collider 종류마다 다름

Rigidbody

Rigidbody는 오브젝트에 중력, 질량, 힘, 속도, 회전, 마찰 등
실제 물리 법칙에 따른 움직임을 적용할 수 있게 해줍니다.
유니티에서 충돌이 발생하려면 움직임등의 상호 작용을 받아야 하기 때문에
충돌에 있어서 필수적인 요소중 하나입니다.


주요 요소

  • mass
    질량 (기본 1) 관성에 영향
  • drag
    선속도 감쇠 공기 저항
  • angularDrag
    회전 감쇠
  • useGravity
    중력 적용 여부
  • isKinematic
    물리 계산 사용 안 하고 수동으로 위치 제어
  • interpolation
    부드러운 이동 처리
    • None
      보간 없음 빠르지만 부자연스러울 수 있음
    • Interpolate
      이전 프레임을 기준으로 현재 위치 보간 부드럽게 보임
    • Extrapolate
      현재 위치를 기준으로 다음 위치 예측 빠른 반응에 유리, 예측 오류 가능
  • collisionDetectionMode
    충돌 검출 정확도
    • iscrete
      느린 속도용. 프레임마다 충돌 검사. 빠른 오브젝트에선 뚫림
    • Continuous
      빠르게 움직이는 Rigidbody가 Static Collider와의 충돌을 더 정밀하게 계산
    • ContinuousDynamic
      Rigidbody가 다른 움직이는 Rigidbody와도 정확하게 충돌
    • ContinuousSpeculative
      예측 기반 충돌 처리. 성능 최적화 + 터널링 방지

Rigid body 주요 함수

MovePosition

    public void MovePosition(Vector3 position)

Paramter

  • position
    이동 시킬 위치

    Rigidbody를 물리적으로 해당 위치로 이동시킵니다

MoveRotation

    public void MoveRotation(Quaternion rot)

Paramter

  • rot
    적용할 회전값

    Rigidbody의 회전을 물리적으로 적용합니다.

AddForce

    public void AddForce(Vector3 force)

Paramter

  • force
    힘의 방향과 크기

    Rigidbody에 외부 힘을 가합니다

AddRelativeForce

  public void AddRelativeForce(Vector3 force)

Paramter

  • force
    힘의 로컬 방향과 크기

    Rigidbody의 로컬 좌표계 기준으로 힘 적용

AddTorque

  public void AddTorque(Vector3 torque)

Paramter

  • torque
    회전 방향 및 세기

    Rigidbody에 회전력을 가합니다.

AddExplosionForce

    public void AddExplosionForce(float explosionForce, Vector3 explosionPosition, float explosionRadius)

Paramter

  • explosionForce
    폭발의 기본 힘

  • explosionPosition
    폭발 중심 좌표

  • explosionRadius
    폭발 반경

    지정 위치를 중심으로 폭발 효과처럼 힘을 퍼뜨립니다.

Sleep

  public extern void Sleep();

Rigidbody를 비활성화시켜 물리 연산을 잠시 멈춥니다.

WakeUp

    public extern void WakeUp();

Sleep()된 Rigidbody를 강제로 깨웁니다.

IsSleeping

    public extern bool IsSleeping();

현재 Rigidbody가 잠들어 있는지 확인합니다.

+ ForceMode

AddForce , AddExplosionForce , AddTorque , AddRelativeForce 등을 사용할 때
마지막 파라미터로 사용하는 열거형으로 미 표기시 ForceMode.Force 가 들어갑니다.

  • Force
    연속적인 힘 mass 고려
  • Impulse
    순간적인 충격 mass 고려
  • VelocityChange
    속도 직접 변경 mass 무시
  • Acceleration
    가속도 부여 mass 무시
profile
Programmer

0개의 댓글