Unity 공부 (7)

도토코·2025년 2월 25일

Unity공부

목록 보기
7/22

충돌 처리 (Collision, Trigger)


Collision

그 오브젝트와 물리적인 부딫힌 오브젝트에 대한 정보가 담겨있다.

OnCollisionEnter

    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log($"Collision @ {collision.gameObject.name}");
    }

이렇게 코드를 작성하면 내가 움직이다가 어떤 GameObject와 부딫히게 되면 그 GameObject의 이름이 콘솔창에 출력되게 된다.

OnCollisionEnter 이벤트 발생 조건

  • 나 혹은 상대에게 Rigidbody component가 있어야 한다.
    • 이때, IsKinematic : off
  • 나에게 Collider가 있어야 한다.
    • 이때, IsTrigger : off
  • 상대에게 Collider가 있어야 한다.
    • 이때, IsTrigger : off

추가적인 Collision이벤트

  • OncollisionStay : 닿아 있는 동안 계속 발생
  • OncollisionExit : 떨어질 때 1번 발생

Trigger

물리적인 피격이 아니더라도 내 Collider범위 내로 들어온 Object에 대한 정보가 담겨있다.

    private void OnTriggerEnter(Collider other)
    {
        Debug.Log($" Trigger @{other.gameObject.name}");            
    }

이렇게 코드를 작성하게 되면 내가 움직이다가 어떤 GameObject의 Collider범위에 들어가게 되면 그 Collider를 가지고 있는 GameObject의 이름이 콘솔창에 출력된다.

OnTriggerEnter 이벤트 발생 조건

  • 둘 다 Collider가 있어야 한다.
  • 둘 중 하나는 IsTrigger가 ON이어야 한다.
  • 둘 중 하나는 Rigidbody가 있어야 한다.

추가적인 Trigger 이벤트

  • OnTriggerStay : 물리력을 동반하지 않은 닿아있는 동안 계속 발생
  • OnTriggerExit : 물리력을 동반하지 않은 떨어지는 순간 1번 발생

profile
코(딩)(꿈)나무

0개의 댓글