[C#][Unity] 충돌 감지
#1 충돌 발생조건
* 충돌이 일어나기 위해서는, 두 오브젝트가 모두 Colider를 갖고 있어야 하며, 둘 중 하나 이상은 RigidBody 컴퍼넌트를 갖고 있어야합니다.
* 두 개의 오브젝트 중 하나의 오브젝트만 움직인다면, 움직이는 오브젝트가 RigidBody 컴퍼넌트를 가지고 있어야합니다.
#2 Collision
*Collison은 실제로 물리적 충돌을 감지하여 충돌을 처리하는 클래스입니다.
따라서 두 오브젝트 모두 RigidBody 컴퍼넌트의 Is Kinematic 항목이 비활성화 되어 있어야만 합니다.
[Collision 관련 함수]
OnCollisionEnter(Collision collision) : 두 객체가 충돌 시 호출되는 함수 입니다.
OnCollisionStay(Collision collision) : 두 객체가 충돌하는 동안 호출되는 함수 입니다.
OnCollisionExit(Collision collision) : 두 객체가 충돌을 끝마치면 호출되는 함수 입니다.
#3 Trigger
Trigger은 Collision과 달리 Colider 를 이용해 충돌을 감지하는 클래스 입니다. 실제적인 물리적 충돌 연산을 하지 않고, 충돌을 감지 하기에 Is Kinematic 의 활성화 여부는 영향을 받지 않습니다. 따라서, 파라미터도 Collision이 아닌 Collider 입니다. 단, Trigger을 사용하기 위해서는 해당하는 게임 오브젝트의 Collider에 Is Trigger항목을 활성화 해 주어야 합니다.
[Trigger 관련 함수]
OnTriggerEnter(Colider other) : 두 객체가 충돌 시 호출되는 함수 입니다.
OnTriggerStay(Colider other) : 두 객체가 충돌하는 동안 호출되는 함수 입니다
OnTriggerExit(Colider other) : 두 객체가 충돌을 끝마치면 호출되는 함수 입니다.