Mesh Collider 는 메시 에셋을 사용하고 해당 메시를 기반으로 콜라이더를 빌드합니다. 이 방법은 복잡한 메시에 프리미티브를 사용하는 것보다 충돌 검사에 더 정확합니다. Convex 로 표시된 메시 콜라이더는 다른 메시 콜라이더와 충돌할 수 있습니다.
프로퍼티 | 기능 | |
---|---|---|
Convex | 이 체크박스를 활성화하면 메시 콜라이더가 다른 메시 콜라이더와 충돌합니다. Convex 메시 콜라이더는 삼각형 255개로 제한됩니다. | |
Is Trigger | 이 체크박스를 활성화하면 Unity가 이 콜라이더를 사용하여 이벤트를 트리거하고, 물리 엔진은 이를 무시합니다. | |
Cooking Options | 메시 쿠킹 옵션을 활성화하거나 비활성화하면 물리 엔진이 메시를 처리하는 방식에 영향을 줍니다. | |
None | 아래에 나열된 Cooking Options 를 모두 비활성화합니다. | |
Everything | 아래에 나열된 Cooking Options 를 모두 활성화합니다. | |
Cook for Faster Simulation | 빠른 시뮬레이션을 위해 물리 엔진이 메시를 쿠킹하도록 만듭니다. 활성화하면 몇 가지 추가 단계를 실행하여 생성되는 메시를 런타임 성능에 최적화합니다. 이 작업은 물리 쿼리와 컨택트 생성에 영향을 미칩니다. 이 설정을 비활성화하면 물리 엔진이 빠른 쿠킹 타임을 사용하여 가능한 빠르게 결과물을 생성합니다. 따라서 쿠킹된 메시 콜라이더가 최적화되지 않을 수 있습니다. | |
Enable Mesh Cleaning | 물리 엔진이 메시를 청소하도록 만듭니다. 활성화하면 쿠킹 프로세스가 메시의 손상된 삼각형과 다른 지오메트리 결함을 제거하려고 시도합니다. 이 작업을 수행하면 충돌 검사에 효과적인 메시를 만들고 더 정확한 히트 포인트를 생성할 수 있습니다. | |
Weld Colocated Vertices | 물리 엔진이 메시에서 같은 버텍스를 삭제하도록 만듭니다. 활성화하면 물리 엔진이 동일한 포지션을 가진 버텍스를 결합합니다. 이 작업은 런타임 시점에 발생하는 충돌 피드백에 특히 중요합니다 | |
Use Fast Midphase | 물리 엔진이 출력 플랫폼에 사용할 수 있는 가장 빠른 중간 단계 가속도 구조 및 알고리즘을 사용하도록 만듭니다. 이 옵션을 활성화하면 물리 엔진이 공간 액세스를 위해 R트리를 필요로 하지 않는 더 빠른 알고리즘을 사용합니다. 일부 플랫폼에서 런타임 시점에 중간 단계 문제가 발생하면 이 옵션을 비활성화하고 속도가 더 느린 레거시 중간 단계 알고리즘을 대신 사용할 수 있습니다. | |
Material | 콜라이더가 다른 콜라이더와 상호작용하는 방법을 결정하는 물리 머티리얼에 대한 레퍼런스입니다. | |
Mesh | 충돌에 사용할 메시에 대한 레퍼런스입니다. |
메시 콜라이더는 게임 오브젝트에 연결된 메시를 토대로 충돌체를 재구성하여 빌드하고, 연결된 트랜스폼의 프로퍼티를 읽고 포지션과 스케일을 올바르게 설정합니다. 이렇게 하면 콜라이더의 모양이 게임 오브젝트에 보이는 메시의 모양과 정확히 일치하여 더 정확하고 실제 같은 충돌을 얻을 수 있다는 장점이 있습니다. 하지만 이 높은 정밀도는 기본 콜라이더(구체, 박스, 캡슐 등)가 관련된 충돌보다 많은 프로세싱 오버헤드를 사용하여 얻어지므로 메시 콜라이더 사용을 삼가는 것이 좋습니다.
충돌 메시의 면은 단방향입니다. 즉, 게임 오브젝트가 메시를 한 방향으로 지나갈 수 있지만 다른 방향으로 지나가면 메시와 충돌합니다.
메시 콜라이더가 사용하는 기본 알고리즘과 데이터 구조에 대한 자세한 내용은 PhysX 문서를 참조하십시오.
메시 쿠킹은 일반 메시를 물리 엔진에 사용할 수 있는 메시로 변경합니다. 또한 물리 쿼리를 위한 공간 검색 구조체(예: Physics.Raycast)를 빌드하고 컨택트 생성을 위한 구조체를 지원합니다. Unity는 충돌 검사에 사용하기 전에 모든 메시를 쿠킹합니다. 이 작업은 임포트 시점(Import Settings > Model > Generate Colliders) 또는 런타임 시점에 발생합니다.
런타임 시점에 메시를 생성하는 경우(예: 절차적 표면) Cooking Options 를 설정하면 더 빠르게 결과물을 생성하고 추가 데이터 청소 단계가 비활성화됩니다. 단, 손상된 삼각형이나 같은 자리에 위치한 버텍스를 생성하지 않아야 하는 단점이 있지만, 그만큼 쿠킹 작업 속도가 빨라집니다.
Enable Mesh Cleaning 또는 Weld Colocated Vertices 를 비활성화한 경우 해당 알고리즘이 필터링할 수 있는 데이터를 사용하지 않아야 합니다. Weld Colocated Vertices 를 비활성화한 경우에는 같은 위치에 버텍스가 존재하지 않아야 하고, Enable Mesh Cleaning 을 활성화한 경우에는 면적이 0에 가까운 작은 삼각형, 얇은 삼각형, 면적이 무한에 가까운 거대한 삼각형이 없어야 합니다.
참고: Cooking Options 를 기본 설정값 외에 다른 값으로 지정할 경우 메시 콜라이더는 isReadable의 true
값을 가진 메시를 사용해야 합니다.
메시 콜라이더 사용 시 다음과 같은 몇 가지 제약이 있습니다.
Rigidbody 컴포넌트가 포함된 게임 오브젝트만 Convex 옵션이 활성화된 메시 콜라이더를 지원합니다. 물리 엔진은 컨벡스 메시 콜라이더를 시뮬레이션할 수만 있습니다.
메시 콜라이더가 제대로 동작하려면 다음과 같은 상황에서 메시의 읽기/쓰기가 가능해야 합니다.
콜라이더에 사용되는 메시 지오메트리는 수정해서는 안 됩니다. 메시를 변경할 때마다 물리 엔진이 내부 메시 충돌 가속 구조를 다시 빌드해야 하기 때문입니다. 이 경우 상당한 성능 부하가 발생합니다. 런타임 시점에 충돌하거나 변경해야 하는 메시의 경우 캡슐, 구체, 상자 같은 기본 콜라이더로 메시 셰이프를 대략적으로 만드는 것이 좋습니다.
최적화 팁: 메시 콜라이더만 메시를 사용하는 경우 Normals 를 물리 시스템에서 필요로 하지 않으므로 Import Settings 에서 비활성화할 수 있습니다.
2018.3에서 메시 콜라이더 제한 사항 업데이트됨
2018–10–12 페이지 수정됨
Unity 2017.3에서 메시 쿠킹 옵션 추가됨 NewIn20173
2018.1에서 업데이트된 기능
2017.3에서 읽기/쓰기 활성화 설정과 관련된 제한 사항 업데이트됨
볼록한 메시 팽창은 2018.3에서 지원이 중단되었습니다. 이는 새로운 볼록 헐 계산 알고리즘(Quickhull)이 입력 메시의 결함에 대해 더 큰 허용치를 제공하기 때문입니다.
MeshCollider