Unity 사용자 매뉴얼의 이 섹션에서는 Unity에서 에셋 작업이 어떻게 진행되는지 간략하게 소개합니다. 다루는 항목은 다음과 같습니다.
또한 매뉴얼의 다른 섹션에서 다음의 관련 항목을 참조하십시오.
에셋은 프로젝트에서 사용할 수 있는 다양한 아이템을 말합니다. 에셋은 Unity 외부에서 만든 파일(예: 3D 모델, 오디오 파일 또는 이미지)에서 가져올 수 있습니다. 또한 Unity에서 ProBuilder Mesh, 애니메이터 컨트롤러, 오디오 믹서, 렌더 텍스처 등과 같은 일부 에셋 타입을 만들 수도 있습니다.
Unity는 에셋을 자동으로 임포트하고, 에셋을 임포트하는 데 사용할 임포트 설정과 프로젝트 전반에서 에셋이 사용되는 위치 같은 에셋에 대한 추가 데이터를 관리합니다. 아래에는 이 프로세스가 진행되는 방법이 설명되어 있습니다.
경우에 따라 Unity는 단일 에셋 파일을 임포트하는 동안 여러 에셋을 생성할 수 있습니다. 자세한 내용은 복잡한 에셋 임포트를 참조하십시오.
임포트 설정은 Unity가 에셋을 처리하는 방법에 영향을 줄 수 있습니다. 자세한 내용은 에셋과 해당 임포트 설정을 참조하십시오.
Assets
폴더에 텍스처 같은 에셋을 배치하면 Unity가 먼저 새 파일이 추가되었음을 인식합니다. 이는 에디터가 Assets
폴더의 콘텐츠를 기존에 알려진 에셋의 리스트와 대조하여 자주 확인하기 때문입니다.
Unity가 새 파일을 찾으면 에셋에 고유 ID를 할당합니다. Unity가 에셋을 참조하기 위해 내부적으로 사용하는 ID이며, 이를 통해 Unity는 아무런 손상 없이 에셋을 이동하거나 이름을 바꿀 수 있습니다.
이 예제는 시스템 파일 브라우저에 표시되는 것처럼 Unity가 프로젝트의 Assets
폴더 내에 각 에셋 또는 폴더에 대한 .meta
파일을 생성하는 것을 보여줍니다. 하지만 이러한 .meta
파일은 기본적으로 숨김 상태이므로 프로젝트 창에 표시되지 않습니다. Mode 프로젝트 설정에서 Visible Meta Files를 선택하여 숨김 상태를 해제할 수 있습니다.
Unity는 에셋에 대한 .meta
파일을 생성할 때.meta
파일 내에 에셋 ID를 기록하고 에셋 파일과 동일한 위치에 .meta
파일을 저장합니다. .meta
파일은 에셋의 ID를 포함하고 있기 때문에 관련된 에셋 파일과 동일한 위치에 있어야 합니다. 프로젝트 창에서 에셋을 이동하거나 이름을 변경하면 Unity는 해당 .meta
파일을 자동으로 이동하거나 이름을 바꿉니다. 하지만 Unity 외부에서 에셋을 이동하거나 이름을 변경하는 경우(예: 시스템의 파일 브라우저 사용) 그와 일치하도록 .meta
파일을 이동하거나 이름을 변경해야 합니다.
에셋이 .meta
파일을 잃는 경우(예: 해당 .meta
파일을 업데이트하지 않고 에셋을 Unity의 프로젝트 창 밖으로 이동하거나 이름을 바꾼 경우) 해당 에셋에 대한 모든 레퍼런스가 해제됩니다. 또한 Unity는 이동하거나 이름을 바꾼 에셋이 마치 새 에셋인 것처럼 새 .meta
파일을 생성하고 “고아가 된” 이전 .meta
파일을 삭제합니다.
예를 들어, 텍스처 에셋의 .meta
파일을 잃는 경우 해당 텍스처를 사용했던 머티리얼은 이 텍스처를 더 이상 참조하지 않습니다. 이 문제를 수정하려면 해당 텍스처를 요구했던 머티리얼에 수동으로 다시 할당해야 합니다.
마찬가지로, 게임 오브젝트(또는 프리팹)에 연결된 스크립트 에셋이 해당 .meta
파일을 잃으면 해당 게임 오브젝트는 스크립트의 기능을 상실하고, “미할당 스크립트” 컴포넌트가 됩니다. 이 문제를 해결하려면 스크립트를 게임 오브젝트에 수동으로 다시 할당해야 합니다.
Unity는 Assets
폴더에 추가하는 파일을 읽고 처리하여 파일 콘텐츠를 내부 게임용 데이터로 변환합니다. 에셋 파일 자체는 수정되지 않은 상태로 유지되고, 내부 데이터는 프로젝트의 Library
폴더에 저장됩니다.
에셋에 내부 포맷을 사용하면 Unity가 에디터에서 런타임 시점에 사용할 준비가 된 에셋의 게임용 버전을 보유하고, 수정되지 않은 소스 파일을 Assets
폴더에 보관할 수 있습니다. 내부 포맷을 에셋 파일과 별도로 유지하면 편집 작업 속도를 높이고 에디터가 변경 사항을 자동으로 파악하도록 만들 수 있습니다. 예를 들어 Photoshop 파일 포맷이 편리하다면 .psd
파일을 Assets
폴더에 직접 저장할 수 있지만, 모바일 디바이스, PC 그래픽스 카드 등과 같은 하드웨어는 해당 포맷을 직접 처리하여 텍스처로 렌더링할 수 없습니다.
Unity는 캐시 폴더와 같은 Library
폴더에 에셋의 내부 표현을 저장합니다. 사용자는 Library
폴더를 수동으로 변경할 필요가 없으며, 그럴 경우 Unity 에디터의 프로젝트에 부정적인 영향을 미칠 수 있습니다. 하지만 Unity에 프로젝트가 열려 있지 않다면 Library
폴더를 안전하게 삭제할 수 있습니다. Unity가 Assets
및 ProjectSettings
폴더에서 모든 데이터를 다시 생성할 수 있기 때문입니다. 또한 이는 버전 관리에 Library
폴더를 포함하지 않아야 함을 의미합니다.
때때로 Unity는 단일 에셋 파일을 임포트할 때 여러 에셋을 생성합니다. 예를 들어 다음과 같은 상황에서 발생할 수 있습니다.
임포트 시나리오: | Unity가 파일을 처리하는 방식: |
---|---|
3D 파일(예: FBX 파일)이 머티리얼을 정의하거나 임베디드 텍스처를 포함하는 경우 | Unity가 머티리얼 및 임베디드 텍스처를 별도의 에셋으로 추출합니다. |
이미지 파일을 여러 2D 스프라이트로 임포트하는 경우 | 2D 스프라이트 에디터를 사용하여 단일 그래픽 이미지에서 여러 스프라이트를 정의할 수 있습니다. 이 경우 에디터에서 정의된 각 스프라이트는 프로젝트 창에 개별 스프라이트 에셋으로 표시됩니다. |
3D 파일에 여러 애니메이션 타임라인 또는 여러 클립이 포함된 경우 | Unity는 애니메이션 임포트 설정에 따라 별도의 애니메이션 타임라인 또는 클립을 자동으로 정의합니다. 그 결과로 생성되는 여러 애니메이션 클립은 프로젝트 창에서 별도의 애니메이션 클립 에셋으로 표시됩니다. |
.meta
파일에는 에셋에 할당된 고유 ID 와 더불어 프로젝트 창에 선택된 에셋이 있는 경우에 인스펙터 창에서 보이는 모든 임포트 설정의 값이 있습니다. 텍스처의 경우 여기에는 텍스처 타입, 랩 모드, 필터 모드 및 아방성 레벨 임포트 설정이 포함됩니다.
에셋에 대한 임포트 설정을 변경하면 새로운 설정이 에셋에 수반되는 .meta
파일에 저장됩니다. Unity는 업데이트된 설정에 따라 에셋을 다시 임포트한 후 그에 따라 프로젝트의 Library
폴더에 있는 임포트된 “게임용” 데이터를 업데이트합니다.
프로젝트를 백업하거나 버전 관리 저장소에 프로젝트를 추가하는 경우 Assets
및 ProjectSettings
폴더가 모두 들어 있는 메인 Unity 프로젝트 폴더를 포함하십시오. Unity는 이러한 폴더의 정보를 기반으로 에셋을 다시 임포트하고 게임 또는 애플리케이션을 재구성합니다. 버전 관리에 Library
및 Temp
폴더를 백업하거나 배치하지 마십시오.