메시 콜라이더
메시 콜라이더 컴포넌트 레퍼런스

메시 콜라이더용 메시 준비

메시 콜라이더는 정확한 충돌을 위해 게임 오브젝트의 메시가 올바르게 설정되도록 요구합니다.

메시에 대한 읽기 및 쓰기 액세스 허용

특정 설정 및 최적화에서는 메시의 읽기/쓰기를 활성화해야 합니다. 이 컨텍스트에서 ‘읽기/쓰기’의 의미에 대한 자세한 내용은 메시 API 프로퍼티 Mesh.isReadable에 대한 기술 자료를 참조하십시오.

다음 상황 중 하나라도 해당되는 경우 메시에 대한 읽기/쓰기가 활성화되어야 합니다.

  • 연결된 메시 콜라이더의 트랜스폼에 네거티브 스케일링(예: (–1, 1, 1))이 있고 메시가 볼록한 경우.
  • 연결된 메시 콜라이더의 트랜스폼이 비뚤어지거나 베어낸 것처럼 보이는 경우(예: 회전된 트랜스폼에 스케일링된 부모 트랜스폼이 있는 경우).
  • 메시 콜라이더의 Cooking Options(메시 쿠킹 설정 참조)가 기본값 이외의 값으로 설정되어 있는 경우. 즉, None을 제외한 모든 것이 활성화된 경우입니다.

메시 읽기/쓰기 활성화

메시 읽기/쓰기를 활성화하려면 메시의 Mesh.isReadable 값이 true여야 합니다. 에디터를 통해 이를 적용하려면 다음 단계를 따르십시오.

  1. 프로젝트(Project) 창에서 메시를 포함하는 모델 파일(예: FBX 파일)을 선택합니다.
  2. 인스펙터(Inspector)에서 Model을 선택합니다.
  3. Meshes 섹션에서 Read/Write를 활성화합니다.

메시 쿠킹 설정

메시 콜라이더로 충돌을 계산하려면 물리 시스템이 메시의 지오메트리에 액세스할 수 있어야 합니다. ‘메시 쿠킹’은 3D 메시를 원본 포맷(예: FBX 또는 OBJ)에서 물리 시스템이 읽을 수 있는 포맷으로 변환하는 프로세스를 가리킵니다. 쿠킹 프로세스는 원시 메시 데이터를 가져와 공간 검색 구조체를 빌드하여 Unity가 물리 쿼리에 더 빠르게 응답할 수 있도록 합니다.

메시 쿠킹은 Import Settings(Import Settings > Model > Generate Colliders)에서 또는 런타임 시 트리거할 수 있습니다.

런타임 시 메시 쿠킹 최적화

메시 쿠킹 프로세스 중에 Unity는 메시의 크기와 복잡도를 줄이기 위해 다양한 최적화를 적용할 수 있습니다(예: 중복 버텍스 제거, 겹치는 삼각형 병합, 지오메트리 단순화를 통한 삼각형 수 감소). 그러면 Unity는 최적화된 메시를 더 빠르고 효율적으로 로드하여 메모리 사용량을 줄이고 전반적인 성능을 개선할 수 있습니다.

어떤 최적화를 실행할지 제어하려면 메시 콜라이더의 Cooking Options 프로퍼티(C# 열거형 MeshColliderCookingOptions에 해당)를 사용합니다. 사용할 수 있는 다양한 쿠킹 옵션에 대한 개요는 메시 콜라이더 컴포넌트 레퍼런스를 참조하십시오.

기본 Cooking Options는 에디터에서 쿠킹하고 런타임 시 다시 쿠킹하지 않는 모든 메시 콜라이더에 적합합니다. 또한 런타임 시 필요한 대부분의 메시 콜라이더(특히 한 번만 쿠킹해야 하는 크거나 복잡한 메시)에 적합합니다. 그러나 런타임 시 충돌 지오메트리를 빠르게 생성해야 하는 경우(예: 절차적 표면 또는 플레이어 동작에 따라 변형되는 메시 콜라이더) Cooking Options를 변경하여 콜라이더 생성 속도를 높여야 할 수 있습니다.

Unity가 런타임 시 생성하는 메시에 메시 쿠킹을 최적화하려면 데이터 청소 단계를 비활성화(Enable Mesh CleaningWeld Co-Located Vertices)할 수 있습니다. 하지만 데이터 청소 단계를 비활성화할 경우 해당 알고리즘이 청소할 데이터를 사용하지 않도록 메시 데이터의 유효성을 검사할 다른 방법이 있어야 합니다.

  • Enable Mesh Cleaning을 비활성화한 경우, 메시에 손상된 삼각형(예: 점이 동일 선상에 있는 가느다란 삼각형 또는 면적이 0이나 무한대에 가까운 삼각형)이 없도록 해야 합니다.
  • Weld Colocated Vertices를 비활성화한 경우, 메시에서 같은 위치에 여러 버텍스가 없도록 해야 합니다.

메모리 사용량을 줄이기 위해 Cook For Faster Simulation을 비활성화할 수도 있습니다.

Cooking Options를 변경할 때는 메시에 읽기/쓰기 권한을 적용해야 합니다. 이 방법에 대한 지침은 메시에 대한 읽기 및 쓰기 액세스 허용을 참조하십시오.

렌더링되지 않은 메시 최적화

메시가 렌더링이 아닌 물리 계산을 위한 데이터만 제공해야 하는 경우(예: 보이지 않는 콜라이더)에는 메시의 노멀을 임포트할 필요가 없습니다. 노멀이 없는 메시는 더 적은 메모리를 요구하며 디스크 공간을 덜 사용합니다.

노멀을 비활성화하려면 다음 단계를 따르십시오.

  1. 프로젝트 창에서 메시를 선택합니다.
  2. 인스펙터의 Import settings에서 Model을 선택합니다.
  3. Geometry 섹션으로 이동하여 NormalsNone으로 설정합니다.

Did you find this page useful? Please give it a rating:

메시 콜라이더
메시 콜라이더 컴포넌트 레퍼런스