Unity입력과 물리

충돌과 Trigger 구분

`OnCollision`과 `OnTrigger`를 언제 쓰는지, Rigidbody와 Collider 설정 차이를 함께 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

csharp
private void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        Debug.Log("Player entered");
    }
}

설명

  • 물리적으로 부딪히는 반응이 필요하면 OnCollisionEnter 계열을 봅니다.
  • 통과는 허용하되 감지만 하고 싶으면 Collider의 Is Trigger를 켜고 OnTriggerEnter를 씁니다.
  • 일반적으로 둘 중 하나가 동작하려면 관련 오브젝트 중 적어도 하나에는 Rigidbody가 있어야 합니다.

짧은 예제

csharp
private void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.CompareTag("Wall"))
    {
        bounceCount += 1;
    }
}

빠른 정리

상황선택
물리 반응이 필요함OnCollision...
영역 진입/이탈 감지OnTrigger...
태그 비교CompareTag("Player")

주의할 점

Trigger와 Collision이 전혀 호출되지 않으면 Rigidbody, Collider, Is Trigger 설정을 먼저 확인하는 습관이 가장 중요합니다.

참고 링크

2 sources