본문 바로가기

Unity/Unity2D

Unity2D_Week2 : Collsion

충돌처리 전용함수인 OnTrigger와 OnCollision 함수를 정리한다.

 

1. Collision

Collision을 하기 위해서는 두 객체 모두가 Collision을 가지고 있어야하고, 한 객체는 Rigidbody를 가지고 있어야만 충돌처리 과정이 성립된다. 

void OnCollisionEnter2D(Collision2D collision)
{
     // 충돌이 들어 왔을 때(시작했을 때)
}

void OnCollisionExit2D(Collision2D collision)
{
     // 충돌이 되고 나갔을 때(종료했을 때)
}

void OnCollisionStay2D(Collision2D collision)
{
     // 충돌중일 때(진행중일 때)
}

<사용 방법>

void OnCollisionEnter2D(Collision2D collision)
{
     if(collision.gameObject.tag == "사용자가 설정한 태그")
     {
         // 충돌처리
     }
     // 또는
     if(collision.gameObject.name == "사용자가 설정한 이름")
     {
         // 충돌처리
     }
}

 

2. Trigger

Collision과 다르게 Rigidbody가 없어도 되며, 충돌체크를 할 객체 Collider에는 is Trigger가 체크되어 있어야 한다.

물리적인 접촉없이 Collider범위 안에만 들어온다면 체크할 수 있다.

void OnTriggerEnter2D(Collision2D collision)
{
     // 충돌이 들어 왔을 때(시작했을 때)
}

void OnTriggerExit2D(Collision2D collision)
{
     // 충돌이 되고 나갔을 때(종료했을 때)
}

void OnTriggerStay2D(Collision2D collision)
{
     // 충돌중일 때(진행중일 때)
}

사용 방법은 Collision과 동일하다.

 

★ 주의점

ㆍCollider가 생성한 프로젝트의 환경과 맞는지 확인한다. (2D로 생성했으면 Collision 2D, 3D로 생성했으면 Collision)

ㆍisTrigger가 체크 되어있는지 확인한다.

ㆍRigidBody가 Add되어있는지 확인한다.

'Unity > Unity2D' 카테고리의 다른 글

Unity2D_Week2 : Property  (0) 2021.12.09
Unity2D_Week1 : Coroutine  (0) 2021.12.06
Unity2D_Week1 : Raycast  (0) 2021.12.06
Unity2D_Week1 : ChargeJump  (0) 2021.12.06
Unity2D_Week1 : Jump  (0) 2021.12.06