본문 바로가기
유니티

[Unity] Collision과 Trigger의 차이점

728x90
반응형

유니티에서 물체의 충돌처리를할 때 Collision 혹은 Trigger를 사용합니다. 다만, Collision은 물리를 기반으로 작동이 되기 때문에 충돌 물체중 하나는 무조건 Rigidbody Component를 포함하고 있어야하고, 물체를 통과할 수 없습니다. 반대로 Trigger같은 경우에는 물체가 접촉해 있는지 아닌지만을 검사하기 때문에 Rigidbody Component를 필요로 하지않고 때문에 연산량도 Collision보다는 적습니다. Trigger를 사용하고 싶으면 Collider Component에서 Is Trigger만 체크해주시면 됩니다. 

 

충돌 검사는 각각 3가지 상황에 대해 함수를 제공하는데 물체가 충돌할 때 1번 불러지는 Enter, 물체가 충돌중일 때 매 프레임마다 불러지는 Stay, 물체가 충돌 범위 밖으로 나갈 때 불러지는 Exit가 있습니다.

 

void OnCollisionEnter(Collision collision);

void OnCollisionStay(Collision collision);

void OnCollisionExit(Collision collision);

 

void OnTriggerEnter(Trigger trigger);

void OnTriggerStay(Trigger trigger);

void OnTriggerExit(Trigger trigger);

 

정리해보자면 물리적인 작동을 하는 물체의 충돌을 검사할 떄는 굳이 Trigger를 추가 해줄 필요없이 Collision만으로 검사하는게 효율적이다. 반대로 물리적인 작용이 없는 물체인 경우 연산량이 낮은 Trigger를 사용하는 것이 좋다.

반응형