유니티 Rigidbody Collision Detection

Rigidbody의 'Collision Detection' 이란?

물리 엔진이 객체에 대한 충돌 감지를 처리하는 방법을 결정하는 방식을 뜻합니다. 이 속성에는 네 가지 모드가 있습니다.

 

  1. Discrete: 기본값이며 CPU를 가장 적게 사용하는 옵션입니다. 물리 엔진은 각 물리 시간 단계가 끝날 때만 충돌을 확인합니다. 이로 인해 때때로 빠르게 움직이는 물체가 충돌을 감지하지 않고 다른 물체를 통과하는 "터널링"으로 알려진 문제가 발생할 수 있습니다.
  2. Continuous: CPU를 더 많이 사용하지만 빠르게 움직이는 개체에서 터널링을 방지합니다. 물리 엔진은 마지막 물리 타임스텝에서 다음 타임스텝까지 미리 예측하고 해당 시간 동안 객체가 무엇과 충돌하는지 확인합니다. 그러나 정적 콜라이더(비움직이는 물체)에 대해서만 확인합니다.
  3. Continuous Dynamic: Continuous와 비슷하지만 역시 Continuous Dynamic으로 설정된 다른 동적(움직이는) 콜라이더와의 충돌도 확인합니다. 이것은 CPU를 가장 많이 사용하는 옵션이지만 가장 정확한 충돌 감지 기능을 제공합니다.
  4. Continuous Speculative: Unity 2018.3에서 도입된 최신 옵션입니다. 연속 동적과 유사한 수준의 정확도를 제공할 수 있지만 CPU 비용은 더 낮은 충돌 감지에 예측적 접근 방식을 사용합니다. 모든 객체가 현재 방향으로 계속 이동한다고 가정하고 이를 기반으로 잠재적인 충돌을 계산합니다. 

 


예시

Mode 장르 객체 설명
Discrete 퍼즐 이동 블록 블록은 천천히 움직이며 벽을 통과하지 않으므로 Discrete 방법을 사용할 수 있습니다. 🧩
Continuous FPS 총알 총알은 번개와 같습니다! 터널링 현상 없이 정적 대상을 정확하게 공격해야 합니다. 🚀
Continuous Dynamic 레이싱 빠른 자동차 자동차들은 너무 빨리 움직이기 때문에 물리학 업데이트 사이에 서로 단계적으로 이동할 수 있습니다. 🏎️
Continuous Speculative 물리 소행성 사방에 소행성이 있고 모두 빠르게 움직이고 있습니다! 지연 없는 정확한 충돌이 필요합니다. 🌌