ㆍ충돌처리 전용함수인 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 |