Version: 2021.2
언어: 한국어
임포터 일관성
에셋 데이터베이스

에셋 메타데이터

Unity는 에셋을 임포트할 때 Unity가 에셋을 임포트하는 데 사용할 임포트 설정, 프로젝트 전반에서 에셋이 사용되는 위치와 같은 에셋에 대한 추가 데이터도 저장하고 관리합니다. 아래에는 이 프로세스가 진행되는 방법이 설명되어 있습니다.

  1. Unity가 에셋에 고유 ID를 할당합니다.
  2. Unity가 에셋 파일과 함께 .meta 파일을 생성합니다.
  3. Unity가 에셋을 처리합니다.

모든 에셋에 대한 임포트 설정은 Unity가 에셋을 처리하는 방법에 영향을 줍니다. 에셋 파일 또는 에셋의 임포트 설정을 수정하면 Unity가 에셋을 다시 임포트합니다. 자세한 내용은 에셋과 에셋 임포트 설정을 참조하십시오.

고유 ID

Unity 에디터는 Assets 폴더의 콘텐츠를 기존에 알려진 에셋 리스트와 대조하여 자주 확인합니다. Assets 폴더에 에셋을 배치하면 Unity가 먼저 새 파일이 추가되었음을 인식합니다.

Unity가 새 파일을 찾으면 에셋에 고유 ID를 할당합니다. Unity가 에셋을 참조하기 위해 내부적으로 사용하는 ID이며, 이를 통해 Unity는 아무런 손상 없이 에셋을 이동하거나 이름을 바꿀 수 있습니다.

ID는 일반적으로 에디터에 표시되지 않습니다.

메타 파일

아래 이미지는 Unity가 프로젝트의 Assets 폴더에 있는 각 아이템마다 생성하는 .meta 파일을 보여줍니다. Unity는 에셋 파일과 폴더마다 메타 파일을 생성합니다.

메타 파일은 Unity의 프로젝트 창에 숨겨져 있으며 기본적으로 파일 시스템에도 숨겨져 있을 수 있습니다(Wikipedia: Hidden file and hidden directory를 참조). 따라서 컴퓨터에서 숨김 파일을 표시하지 않는 한 Windows 탐색기나 Finder에서 볼 수 없습니다.

컴퓨터의 Unity 프로젝트에 있는 Assets 폴더, 메타 파일, Unity의 프로젝트 창의 관계
컴퓨터의 Unity 프로젝트에 있는 Assets 폴더, 메타 파일, Unity의 프로젝트 창의 관계

이 예제는 Unity가 프로젝트의 Assets 폴더 내에 각 에셋 또는 폴더에 대한 .meta 파일 생성을 보여줍니다. 이는 시스템 파일 브라우저에 표시되기 때문입니다. 그러나 이러한 .meta 파일은 기본적으로 숨겨져 있기 때문에 프로젝트 창에서 볼 수 없습니다. 보이게 하려면 모드 프로젝트 설정을 열고 Visible Meta Files를 활성화합니다.

Unity는 에셋에 대한 .meta 파일을 생성할 때 .meta 파일 내에 에셋의 ID를 작성하고 에셋 파일과 동일한 위치에 .meta 파일을 저장합니다.

.meta 파일은 에셋에 할당된 고유 ID, 그리고 프로젝트 창에서 에셋을 선택할 때 인스펙터 창에서 보이는 모든 임포트 설정 값을 포함하고 있습니다. 예를 들어, 텍스처의 메타 파일은 텍스처 타입, 랩 모드, 필터 모드, 이방성 레벨 임포트 설정을 포함합니다.

에셋의 임포트 설정을 변경하면 Unity는 새 설정을 에셋을 첨부.meta 파일에 저장합니다. 그런 다음 업데이트된 설정에 따라 에셋을 다시 임포트하고 임포트된 해당 “게임용” 데이터를 프로젝트의 Library 폴더에 업데이트합니다.

메타 파일 과 에셋 파일

중요: 메타 파일에는 프로젝트에서 에셋이 사용되는 방법에 대한 중요한 정보가 포함되어 있으며 관련 에셋 파일과 함께 있어야 합니다. Unity 자체의 프로젝트 창 안에서 에셋을 이동하거나 이름을 바꾸면 Unity는 해당 .meta 파일도 자동으로 이동하거나 이름을 바꿉니다. Unity 외부(예: Windows 탐색기 또는 macOS의 Finder)에서 에셋을 이동하거나 이름을 바꾸면 .meta 파일도 동일하게 이동하거나 이름을 바꿔야 합니다.

에셋의 메타 파일을 잃는 경우(예를 들어, Unity 외부에서 에셋을 이동하거나 이름을 바꿨지만 해당 .meta 파일은 그대로 두거나 이름을 바꾸지 않은 경우) 프로젝트에서 해당 에셋에 대한 레퍼런스를 해제합니다. 이 상황에서 Unity는 에셋에 해당 메타 파일이 없음을 확인하고 이동되거나 이름을 바꾼 에셋에 대해 마치 새 에셋인 것처럼 새 메타 파일을 생성하고 “고아가 된” 이전 .meta 파일을 삭제합니다.

이 프로세스는 프로젝트에 중대한 문제를 일으킬 수 있습니다. 예는 다음과 같습니다. * 텍스처 에셋이 .meta 파일을 잃는 경우 해당 텍스처를 사용하는 모든 머티리얼은 해당 텍스처에 대한 레퍼런스를 잃게 됩니다. 이 문제를 수정하려면 텍스처가 필요한 모든 머티리얼에 해당 텍스처를 수동으로 다시 할당해야 합니다. * 스크립트 에셋이 .meta 파일을 잃는 경우 해당 스크립트가 할당된 모든 게임 오브젝트 또는 프리팹은 할당된 스크립트 대신 “할당되지 않은 스크립트” 컴포넌트를 가지며 기능을 상실합니다. 이 문제를 수정하려면 스크립트가 필요한 모든 게임 오브젝트에 해당 스크립트를 수동으로 다시 할당해야 합니다.

빈 폴더, 메타 파일, 버전 관리

Unity는 프로젝트의 Assets 폴더에 있는 각 폴더에 자체 .meta 파일을 할당합니다. 그러나 일부 버전 관리 시스템(VCS)은 빈 폴더를 저장할 수 없습니다. 즉, 프로젝트에서 빈 폴더를 추가하거나 삭제할 때 VCS는 해당 .meta 파일을 추가 또는 제거된 상태로 저장하지만 폴더의 추가 또는 제거 변경 사항 자체는 저장하지 않으므로 혼란을 주거나 문제가 될 수 있습니다.

이 문제를 해결하기 위해 Unity는 빈 폴더에 대해 다음과 같은 방식을 사용합니다.

Unity가 이전에는 메타 파일이 있었지만 지금은 해당 메타 파일이 없는 빈 폴더를 감지하면, VCS의 다른 사용자가 폴더를 삭제하여 메타 파일이 제거되었다고 가정하고 빈 폴더를 로컬에서 삭제합니다.

Unity가 폴더에 대한 새 메타 파일을 감지했지만 해당 폴더가 로컬에 존재하지 않는 경우 Unity는 VCS의 다른 사용자가 폴더를 추가하여 새 메타 파일이 생성된 것으로 간주하고 로컬에 해당하는 빈 폴더를 생성합니다.

임포터 일관성
에셋 데이터베이스
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961