OnCollsionEnter 함수 작동이 안될 때
A 와 B가 충돌할 때
1. 둘다 Collider 있어야함
2. 둘 중하나 Rigidbody 있어야함
3. 둘 다 isTrigger 체크 해제
나의 경우 땅은 MeshCollider로 되어있다. 이것으로 인해 충돌이 안되는 이유도 있다고 한다. 이럴 경우 y좌표로 인한 문제가 발생한다고는 하나, 정확한 원인은 찾지 못했다.
OnCollision 함수는 양쪽 다 isTrigger가 켜져 있지 않을 때, 콜라이더까리 충돌하면 반응하는 함수이다.
OnTrigger 함수는 한 쪽 이상이 isTrigger가 켜져 있을 때 반응하고 인자는 Collider를 사용한다.
[출처]https://kupaprogramming.tistory.com/20
따라서
OnCollisionEnter함수 대신 OnTriggerEnter 함수를 대신 사용하면 된다고 하는 자료를 찾았다.
https://answers.unity.com/questions/210220/apparently-i-dont-understand-oncollisionenter.html
Apparently I don't understand OnCollisionEnter - Unity Answers
answers.unity.com
MonoBehaviour.OnTriggerEnter(Collider)
함수의 경우 Collider가 다른 트리거 이벤트에 침입했을 때 호출된다.
[출처]https://docs.unity3d.com/kr/530/ScriptReference/MonoBehaviour.OnTriggerEnter.html
Unity - 스크립팅 API: MonoBehaviour.OnTriggerEnter(Collider)
이 메시지는 해당 트리거 콜라이더와 트리거와 접촉한 강체(or 강체가 없다면 콜라이더)로 보내집니다. Notes: Trigger events are only sent if one of the colliders also has a rigidbody attached. Trigger events will be sent
docs.unity3d.com
OnCollision과 OnTrigger 비교
[출처] https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lovelybarry&logNo=220844960463
( Unity쨩 - 8일차 ) Trigger와 Collision의 차이 및 Trigger를 이용한 충돌 구현
먼저 Trigger와 Collision의 차이를 설명하겠다. 둘다 충돌을 감지할 수 있다. 무슨 차이가 있을까 ? 먼...
blog.naver.com
충돌처리를 할 시 Collision의 경우는 Rigidbody라는 녀석을 사용하기 때문에 도배를 할 경우 부하가 많이 걸린다.
그러니 왠만하면 Trigger로 해결을 보는 것이 더 효율적이라는 점이다.