Version: 2023.2
언어: 한국어
메시 콜라이더
메시 콜라이더 컴포넌트 레퍼런스

메시 콜라이더용 메시 준비

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

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

특정 설정 및 최적화에서는 메시의 읽기/쓰기를 활성화해야 합니다. 이 컨텍스트에서 ‘읽기/쓰기’의 의미에 대한 자세한 내용은 메시 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으로 설정합니다.
메시 콜라이더
메시 콜라이더 컴포넌트 레퍼런스