Version: Unity 6.0 (6000.0)
언어 : 한국어
Assign assets to an AssetBundle
멀티 프로세스 에셋 번들 빌드(실험 단계)

빌드의 출력

이전 ‘에셋 번들 워크플로’ 섹션에서는 BuildPipeline.BuildAssetBundles를 사용하여 에셋 번들을 빌드하는 방법을 설명했습니다. 이 API 호출은 빌드 프로세스의 결과를 에셋 번들 파일과 각 에셋 번들에 대한 .manifest 파일을 비롯하여 지정된 출력 디렉토리에 기록합니다. 이 섹션에서는 빌드 프로세스에 의해 작성된 파일의 세부 정보를 설명합니다.

에셋 번들 파일

이 파일은 .manifest 확장자가 없는 파일로서 에셋을 로드하기 위해 런타임 시점에 로드해야 하는 파일입니다.

에셋 번들 파일은 내부적으로 여러 파일이 포함된 아카이브입니다. 다음은 일반 에셋 번들 구조의 예시입니다.

메인 파일은 Unity의 바이너리 SerializedFile 포맷을 사용합니다. 여기에는 에셋 번들 오브젝트와 에셋 번들에 명시적으로 또는 암시적으로 포함된 모든 에셋의 오브젝트가 포함되어 있습니다. 모든 오디오 및 동영상 콘텐츠는 .resource 파일에 저장되고 모든 텍스처 데이터는 .resS 파일에 저장됩니다.

씬 에셋 번들의 콘텐츠는 비슷하지만, 개별 씬의 스트림 로딩에 최적화되어 있습니다. 각 씬에는 2개의 SerializedFile이 포함됩니다.

매니페스트 파일

추가 매니페스트 번들을 비롯하여 생성되는 모든 에셋 번들에는 연결된 매니페스트 파일이 생성됩니다. 매니페스트 파일의 확장자는 .manifest이며 텍스트 에디터를 사용하여 열 수 있습니다. 여기에는 번들에 대한 CRC(주기적 이중화 검사) 데이터와 종속성 데이터 같은 정보가 포함되어 있습니다. 일반 에셋 번들의 매니페스트 파일은 다음과 같습니다.

ManifestFileVersion: 0
CRC: 2422268106
Hashes:
  AssetFileHash:
    serializedVersion: 2
    Hash: 8b6db55a2344f068cf8a9be0a662ba15
  TypeTreeHash:
    serializedVersion: 2
    Hash: 37ad974993dbaa77485dd2a0c38f347a
HashAppended: 0
ClassTypes:
- Class: 91
  Script: {instanceID: 0}
Assets:
  Asset_0: Assets/Mecanim/StateMachine.controller
Dependencies: {}

포함된 에셋, 종속성, 그리고 기타 정보를 보여 줍니다.

매니페스트 번들

빌드로 생성되는 추가 파일은 두 개입니다.

첫 번째는 에셋 번들이 빌드된 디렉토리에 따라 이름이 지정된 작은 에셋 번들입니다. 이 파일은 Manifest Bundle이라고 하며, 런타임 시 로드할 번들 종속성을 파악하는 데 유용한 AssetBundleManifest 오브젝트를 포함합니다. 이 번들과 매니페스트 오브젝트를 사용하는 방법에 대한 자세한 내용은 네이티브에서 에셋 번들 사용에 대한 기술 자료를 참조하십시오.

매니페스트 번들에 대한 매니페스트 파일도 생성됩니다. 해당 내용은 다음과 같습니다.

ManifestFileVersion: 0
AssetBundleManifest:
  AssetBundleInfos:
    Info_0:
      Name: scene1assetbundle
      Dependencies: {}

매니페스트 번들의 .manifest 파일에는 에셋 번들의 관계와 종속성이 기록됩니다. 이는 매니페스트 번들 내부의 AssetBundleManifest 오브젝트에 기록된 정보와 유사하며, 텍스트 파일이기 때문에 가독성이 높고 외부 툴에 의한 구문 분석이 쉽습니다. 이 .manifest 파일은 플레이어 빌드의 내용에 해당 유형이 사용되지 않는 경우 에셋 번들에서 사용하는 유형의 code stripping을 방지하는 데 중요합니다. 플레이어 설정에 코드 스트리핑이 활성화되어 있는 경우 플레이어 빌드를 수행할 때 BuildPlayerOptions.assetBundleManifestPath를 설정하여 이 매니페스트에 경로를 전달해야 합니다. 코드 스트리핑에 대한 자세한 내용은 배포 크기 및 코드 스트리핑을 참조하십시오.

참고: BuildPipeline.BuildAssetBundles 대신 Addressables 패키지를 사용하여 빌드할 때 동일한 포맷의 에셋 번들 파일이 작성되지만 매니페스트 파일이 없고 매니페스트 번들이 생성되지 않습니다. 자세한 내용은 어드레서블 기술 자료를 참조하십시오.

Assign assets to an AssetBundle
멀티 프로세스 에셋 번들 빌드(실험 단계)