Version: Unity 6.0 (6000.0)
언어 : 한국어
에셋 임포트
에셋 동시 임포트

에셋 메타데이터

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: 숨겨진 파일과 숨겨진 디렉토리 참조). 따라서 컴퓨터에서 숨김 파일을 표시하지 않는 한 Windows 탐색기나 Finder에서 볼 수 없습니다.

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

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

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

.meta 파일에는 에셋에 할당된 고유 ID, 그리고 프로젝트 창에서 에셋을 선택할 때 인스펙터 창에서 보이는 모든 임포트 설정 값을 포함하고 있습니다. 예를 들어 텍스처의 메타 파일은 Texture Type, Wrap Mode, Filter Mode, Aniso Level 임포트 설정을 포함합니다.

에셋에 대한 임포트 설정을 변경하면 변경된 설정이 에셋과 함께 저장된 .meta 파일에 저장됩니다. 이후 Unity는 업데이트된 설정에 따라 에셋을 다시 임포트하며 이에 대응하여 임포트되어 ‘이미 게임에 로드된’ 데이터가 프로젝트의 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의 다른 사용자가 폴더를 추가하여 새 메타 파일이 생성된 것으로 간주하고 로컬에 해당하는 빈 폴더를 생성합니다.

에셋 임포트
에셋 동시 임포트