[2DGP] Continous Collision Detection
CCD
- 터널링(tunneling) 현상 발생
- Player에 BoxCollider를 붙이고 Ground와 충돌 처리하여 위치를 조정하도록 설정했다.
- 프레임이 낮을 때 Player가 땅을 지나쳐 땅을 뚫고 내려가버린다.
- Discrete Collision Detection
- 일반적인 충돌 감지 방식으로, 매 프레임마다 오브젝트의 위치만 확인해서 충돌을 체크한다.
- 장점: 성능이 빠르다.
- 단점: 빠른 오브젝트의 충돌을 놓칠 수 있다.
- Continuous Collision Detection
- 이전 위치와 현재 위치 사이의 경로를 계산하여 그 사이에 충돌이 있었는지 판단한다.
- 장점: 빠른 오브젝트의 충돌에 적합하다.
- 단점: 성능에 부담이 될 수 있어 필요한 오브젝트에만 적용해야 한다.
- 구현 방법
- 오브젝트가 프레임 사이에서 이동한 궤적을 따라 가상의 Collider를 만든다.
- 그 경로를 기준으로 충돌이 있었는지 확인한다.
구현
- 현재 코드의 충돌 방식
- 충돌시 두 개의 Collider의 현재 위치를 기준으로만 충돌을 감지한다.
- 프레임 단위의 위치 변화 사이에 충돌 체크를 하지 않아 프레임이 낮으면 뚫고 지나간다.
Leave a comment