복합 콜라이더는 동일한 리지드바디 게임 오브젝트에 있는 콜라이더의 모음입니다.
복합 콜라이더는 전체적으로 하나의 리지드바디 콜라이더처럼 작동합니다. 복합 콜라이더는 오목한 셰이프에 정확하게 맞는 콜라이더가 필요하거나 메시 콜라이더로 시뮬레이션하기에는 너무 많은 계산을 요구하는 모델이 있을 때 유용합니다.
복합 콜라이더는 다음 요소로 구성됩니다.
복합 콜라이더에는 리지드바디가 하나만 있어야 하며, 이는 루트 게임 오브젝트에 있어야 합니다.
복합 콜라이더를 만드는 자세한 지침은 복합 콜라이더 생성을 참조하십시오.
위 그림의 Gun Model 게임 오브젝트에서는 부모 게임 오브젝트에 리지드바디가 연결되어 있고, 각각 기본 콜라이더가 있는 여러 자식 게임 오브젝트가 있습니다. 물리 힘으로 부모 리지드바디를 움직이면 자식 콜라이더도 함께 움직입니다. 기본 콜라이더는 환경의 다른 콜라이더와 충돌할 수 있으며, 부모 리지드바디는 이러한 충돌에 따라 이동 방식을 변경합니다.
이 설정은 리지드바디와 여러 콜라이더를 포함하는 단일 게임 오브젝트보다 더 많은 유연성을 제공합니다. 각 콜라이더가 다른 게임 오브젝트에 있는 경우 각 콜라이더의 트랜스폼을 개별적으로 수정할 수 있습니다. 하지만 콜라이더의 위치를 변경할 때는 리지드바디의 동작을 모니터링해야 합니다. 콜라이더의 위치와 스케일을 변경하면 리지드바디의 질량 중심이 변경될 수 있으며, 런타임 시 여러 프레임에 걸쳐 지속적인 변경이 이루어지면 예기치 않은 동작이 발생할 수 있습니다. 이 경우 rigidbody.centerOfMass
를 사용하여 질량 중심을 수동으로 설정할 수 있습니다.
동일한 리지드바디에 여러 콜라이더를 연결하면 물리 시스템은 전체를 하나의 리지드바디 콜라이더로 취급합니다. 콜라이더 타입은 리지드바디 설정에 따라 동적 또는 키네마틱으로 정의됩니다.
복합 콜라이더가 다른 콜라이더와 접촉하면 Unity는 복합 콜라이더의 각 개별 콜라이더별로 충돌을 등록합니다. 따라서 런타임 시 원하는 충돌 페어만 얻을 수 있도록 콜라이더를 정렬하거나, 콜라이더 레이블을 사용하여 특정 콜라이더로 인해 발생하는 동작을 확인해야 합니다.
대부분의 경우 복합 콜라이더는 메시 콜라이더와 유사한 솔루션을 제공하며, 주요 목적은 복잡한 셰이프를 가진 항목에 정확한 충돌을 제공하는 것입니다. 복합 콜라이더의 장점과 한계점을 고려할 때는 일반적으로 메시 콜라이더와 비교하는 경우가 많습니다.
복합 콜라이더의 주요 이점은 다음과 같습니다. * 복잡한 오목 셰이프에 대한 충돌을 얻을 수 있습니다. 메시 콜라이더는 더 정확하지만, 오목한 셰이프에 대해 정확한 충돌을 지원하지는 않습니다. * 일부 경우에는 복합 콜라이더가 메시 콜라이더보다 적은 계산을 요구할 수 있습니다. 많은 경우 몇 개의 콜라이더만으로도 대략적으로 만들 수 있는 셰이프나 너무 정확하지 않아도 되는 셰이프가 이에 해당합니다. 예를 들어 메시 콜라이더는 복잡한 셰이프를 정확하게 맞추기 위해 수백 개의 폴리곤을 생성할 수 있지만, 기본 콜라이더를 사용한 대략적인 셰이프는 훨씬 적은 폴리곤을 필요로 할 수 있습니다.
그러나 복합 콜라이더에도 몇 가지 중요한 한계점이 있습니다. * 복합 콜라이더는 정확도가 떨어집니다. 대부분의 경우 더 단순한 셰이프로 복합 콜라이더를 만들면 항목의 셰이프에 근접하게 만들 수는 있지만 완벽하게 일치하지는 않습니다. * 복합 콜라이더는 생성 시간이 더 오래 걸립니다. 복합 콜라이더를 사용하면 각 콜라이더를 수동으로 정렬해야 하므로 시간이 더 오래 걸립니다. * 일부 경우에는 복합 콜라이더가 메시 콜라이더보다 많은 계산을 요구할 수 있습니다. 많은 수의 콜라이더를 사용하여 대략적인 셰이프를 만들어야 하는 매우 복잡한 셰이프가 이에 해당하는 경우가 많습니다. 메시 콜라이더 하나가 여러 개의 기본 콜라이더보다 더 효율적일 수 있습니다.
프로젝트에 따라 적절한 옵션이 항상 달라질 수 있으므로, 각 설정을 테스트하고 물리 프로파일러를 사용하여 콜라이더 설정의 효율성을 파악해야 합니다.