Unity 에셋 번들 가이드
이 문서에서는 Unity의 에셋 번들에 대해 설명하고, 에셋 번들 생성 시 유용한 정보와 예제를 제공합니다.
에셋 번들이란?
에셋 번들은 Unity에서 자산(예: 오디오, 텍스처, 모델 등)을 그룹화하여 배포할 수 있게 하는 패키지입니다. 이를 통해 필요한 자산을 쉽게 로드하고 관리할 수 있습니다.
BuildPipeline.BuildAssetBundles() 사용하기
BuildPipeline.BuildAssetBundles() 함수를 통해 에셋 번들을 생성할 수 있습니다. 하지만, 보다 사용자 친화적인 대안으로 Addressables 패키지를 사용하는 것이 권장됩니다.
에셋 번들을 위한 준비
에셋 번들을 빌드하기 전에, 결과물이 출력될 디렉토리(예: Assets/AssetBundles)를 확인해야 합니다. 빌드 전에 이 폴더가 실제로 존재하는지 확인하는 것이 중요합니다.
BuildAssetBundleOptions
// 아래는 BuildAssetBundleOptions의 세 가지 주요 옵션입니다.
// 1. LZMA 압축 포맷 (BuildAssetBundleOptions.None)
- 장점: 파일 크기가 작음
- 단점: 압축 해제 때문에 로드 시간이 길어짐
// 2. 압축되지 않은 번들 (BuildAssetBundleOptions.UncompressedAssetBundle)
- 장점: 로드 속도가 빠름
- 단점: 파일 크기가 큼
// 3. 청크 기반 압축 (BuildAssetBundleOptions.ChunkBasedCompression)
- 장점: 필요한 청크만 로드 가능
- 단점: 파일 크기가 LZ4보다 큼
BuildTarget 설정
BuildTarget.Standalone 옵션을 사용하여 에셋 번들을 사용할 플랫폼을 설정합니다. EditorUserBuildSettings.activeBuildTarget를 사용하면 현재 빌드 설정이 된 플랫폼을 자동으로 찾습니다.
에셋 번들 빌드 및 예제
에셋 번들 빌드를 시작하려면 에디터에서 Assets > Build AssetBundles를 클릭합니다. 빌드가 완료되면, 에셋 번들 디렉토리에 원래 예상했던 것보다 더 많은 파일이 생성됩니다.
| 파일명 | 설명 |
|---|---|
AssetBundleName |
에셋 번들 이름 |
AssetBundleName.manifest |
번들에 대한 매니페스트 파일 |
Manifest |
종속성 및 CRC 데이터 포함 |
매니페스트 파일
매니페스트 파일은 에셋 번들 간의 관계와 종속성을 기록합니다. 이 정보는 나중에 로드 시 유용합니다.
에셋 구조 예제
에셋 번들은 다양한 파일을 포함하며, 구조는 에셋의 종류에 따라 다릅니다. 예를 들어, 씬 에셋 번들은 그 내용이 스트림 로딩에 최적화되어 있습니다.
결론
에셋 번들은 Unity에서 자산을 관리하고 배포하는 데 매우 유용합니다. 다양한 압축 옵션을 활용하여 파일 크기와 로드 속도를 최적화할 수 있습니다. 매니페스트 파일을 통해 자산의 종속성을 관리하여 더 효과적인 개발 환경을 조성할 수 있습니다.
더 많은 정보를 원하시면 Unity 공식 문서와 관련 튜토리얼을 참조하시기 바랍니다.