Rigidbody의 'Collision Detection' 이란?
물리 엔진이 객체에 대한 충돌 감지를 처리하는 방법을 결정하는 방식을 뜻합니다. 이 속성에는 네 가지 모드가 있습니다.
- Discrete: 기본값이며 CPU를 가장 적게 사용하는 옵션입니다. 물리 엔진은 각 물리 시간 단계가 끝날 때만 충돌을 확인합니다. 이로 인해 때때로 빠르게 움직이는 물체가 충돌을 감지하지 않고 다른 물체를 통과하는 "터널링"으로 알려진 문제가 발생할 수 있습니다.
- Continuous: CPU를 더 많이 사용하지만 빠르게 움직이는 개체에서 터널링을 방지합니다. 물리 엔진은 마지막 물리 타임스텝에서 다음 타임스텝까지 미리 예측하고 해당 시간 동안 객체가 무엇과 충돌하는지 확인합니다. 그러나 정적 콜라이더(비움직이는 물체)에 대해서만 확인합니다.
- Continuous Dynamic: Continuous와 비슷하지만 역시 Continuous Dynamic으로 설정된 다른 동적(움직이는) 콜라이더와의 충돌도 확인합니다. 이것은 CPU를 가장 많이 사용하는 옵션이지만 가장 정확한 충돌 감지 기능을 제공합니다.
- Continuous Speculative: Unity 2018.3에서 도입된 최신 옵션입니다. 연속 동적과 유사한 수준의 정확도를 제공할 수 있지만 CPU 비용은 더 낮은 충돌 감지에 예측적 접근 방식을 사용합니다. 모든 객체가 현재 방향으로 계속 이동한다고 가정하고 이를 기반으로 잠재적인 충돌을 계산합니다.
예시
Mode | 장르 | 객체 | 설명 |
Discrete | 퍼즐 | 이동 블록 | 블록은 천천히 움직이며 벽을 통과하지 않으므로 Discrete 방법을 사용할 수 있습니다. 🧩 |
Continuous | FPS | 총알 | 총알은 번개와 같습니다! 터널링 현상 없이 정적 대상을 정확하게 공격해야 합니다. 🚀 |
Continuous Dynamic | 레이싱 | 빠른 자동차 | 자동차들은 너무 빨리 움직이기 때문에 물리학 업데이트 사이에 서로 단계적으로 이동할 수 있습니다. 🏎️ |
Continuous Speculative | 물리 | 소행성 | 사방에 소행성이 있고 모두 빠르게 움직이고 있습니다! 지연 없는 정확한 충돌이 필요합니다. 🌌 |