(유니티) 충돌감지함수 – OnTrigger, OnCollision


사진이 작아서 잘 안보이지만 유니티 게임 오브젝트는 (3D의 경우) ‘Collider’ 컴포넌트를 가진다. 2D의 경우 Add Conponent 를 통해서 추가하면 된다. (Add Component -> Physics -> 원하는 Collider)

‘Collider’ 컴포넌트를 가지고 있으면 충돌처리를 할 수 있다.

‘Collider’ 컴포넌트의 ‘Is Trigger’ 가 체크(true)되있으면 다른 게임오브젝트들이 통과할 수 있다.

이제부터 설명할 함수들은 조건이 성사되면 유니티에서 실행시켜주는 함수들이다.

void OnTriggerEnter(Collider other)
{
    // 원하는 코드 작성
}

OnTriggerEnter 의 경우 Trigger 상태인 게임 오브젝트와 충돌한 순간에 실행된다.

void OnTriggerExit(Collider other)
{
    // 원하는 코드 작성
}

OnTriggerExit 의 경우 Trigger 상태인 게임 오브젝트와 충돌이 해제된 순간에 실행된다.

void OnTriggerStay(Collider other)
{
    // 원하는 코드 작성
}

OnTriggerStay 의 경우 Trigger 상태인 게임 오브젝트와 충돌 중인 경우 매 프레임 실행된다.

void OnCollisionEnter(Collision collision)
{
    // 원하는 코드 작성
}
void OnCollisionExit(Collision collision)
{
    // 원하는 코드 작성
}
void OnCollisionStay(Collision collision)
{
    // 원하는 코드 작성
}

OnCollision 함수들은 Trigger 상태가 아닌 게임 오브젝트와 충돌했을 때 실행된다. 실행되는 조건은 위 함수들과 같다.

이런 함수들을 사용하면 제작자가 원하는 게임 오브젝트가 아닌 다른 오브젝트에도 함수가 실행될 수 있다.

이럴 때 Tag 를 사용하여 분류한다. 간단한 조건문으로 함수가 실행되는 순간을 제어할 수 있기 때문.


댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다