[unity]디바이스, 핸드폰에서 충돌처리 안 될 경우

2017. 8. 9. 21:59프로그래밍/Unity

반응형
SMALL

기본적으로 유니티 충돌체크는 ( 리지드바디+콜라이더 ) 형태의 무빙오브젝트가


다른 콜라이더와 충돌했을경우 이벤트를 발생시키는데


물리적 충돌처리를 하느냐 하는 형태에 따라서  Collision 과 Trigger 로 구분짓는다


OnCollisionEnter()

OnCollisionStay()

OnCollisionExit()


OnTriggerEnter()

OnTriggerStay()

OnTriggerExit()


를 한 세트로 충돌 발생시, 지속되고있을때, 나갈때 에 대한 처리를 구분지어서 할 수 있다.

그리고 2D의 경우 뒤에 함수와 인자클래스에 2D를 붙여주면 됀다..

여기까지는 뭐 구글링이든 레퍼런스든 손쉽게 찾을 수 있고, 튜토리얼도 있으니 따라하기 어렵지 않을 것이다.

그런데 에디터상에서는 잘 처리되던 충돌이 모바일 기기에서 발생하지 않는 경우가 생겼다. 



테스트테스트


구글링 테스트


테스트 구글링...


을 반복 하다가 


결국엔 충돌 하나하나에 대해 전부 디버그 로그를 찍는 방법으로 총돌 자체가 발생하지 않는 다는 것을 알아냈고,


왜 발생되지 않는지 이것저것 만져보다가 Tag를 바꿔보니 실마리를 찾았다.


충돌예제에서는 col.tag 나 col.name을 이용하여 충돌체를 구분짓는 방법을 샘플로 내놓고 있는데,


모바일에서는 왜인지 커스텀으로 만들어낸 tag의 경우 충돌 발생이 되지 않았다. 물론 이부분은 같은 태그끼리만 충돌체크가 되는 것인지 깊이 있게 테스트 해보진 않았고,


태그로 구분짓던것을 따로 변수를 만들어 구분하는 것으로 해결했다.




혹시 같은 고생을 할까 해서 적어둔다.. 

반응형
LIST