오늘은 숙련주차 과제하면서 Raycast와 Collider에 관해서 정리해보고 싶은것이 있어서 정리해 보고자한다.
Collider
유니티의 충돌관련 시스템이다. 보통 Box,Sphere,Capsule 3가지가 있고 Rigidbody와 함께 물리 법칙을 이용할때 많이 사용한다.
자료를 찾다가 알게 되었는데 콜라이거다 단순할 수록 성능에 부하를 주지않고 처리 속도가 빨라진다고 한다. Spehere -> Capsule -> Box -> Mesh 순으로 퍼포먼스적으로 성능에 부하가 걸린다고 한다. (특강에서 얼핏들어서 보통 Mesh는 최소한으로 쓰는게 좋다고 했던것이 기억이 난다. Mesh가 정밀하게 탐색은 가능한 부분은 있다!)
Class Tpye 속성들 - Collsion
collider : 충돌한 콜라이더
contacts : 물리엔진에 의해 생성되는 물체 간의 충돌지점(접점은 여러개가 가능하다.)
normal : 충돌지점의 법선
point : 충돌 지점
separation : 충돌한 콜라이더간의 거리
thisCollider : 충돌 지점의 첫 번째 Collider
impulse : 충격량
relaitveVelocity : 충돌한 두 객체의 상대적인 선속도
이정도 쓰이고 그외는 평소에 알고있었던 내용 contacts와 normal 같은 경우 이번 프로젝트를 하면서 알게된 내용이라 잘 쓰고있다 특히 normal은 평면의 법선벡터를 구하는 함수라 앞으로 종종 사용이 가능할듯.
충돌 액션 매트릭스
<출처 : 유니티 공식 문서>
어떤 상황에서 감지가 되고 안되는지를 잘 기억해둘것
Ray
보통 이러한 콜라이더들을 감지하는데 사용하는 것이 Ray 구조체이다. 말 그대로 레이저 포인트를 쏜다고 생각하면 되고 충돌 구조체를 저장하기 위해 RaycastHit을 사용 2D와 3D 버전이 다르므로 사용할 때 주의하자.
오늘의 회고
건축시스템 프로토타입 느낌으로 구성을 했는데 생각보다 어렵다. 일단 구현은 했는데 기존 건물이 있을때 충돌감지도 잘 못해서 수정할 것들은 수정해 나가면서 작업 해야겠다. 우선은 마인크래프트 느낌으로 건축하며 벽에 붙이는것 까지는 성공했다. 내일 마저 마무리해야지
주차가 조금 길기는 한데 확실히 3D프로젝트 하는게 재밌어서 몰입감이 좀 더 있는것같다. 열심히 해봐야겠다.(생각보다 기대를 많이받아서 은근 부담이랄까 ;ㅅ;)