참고: 이 툴은 Unity의 기본 기능이 아닌 추가 기능입니다. Unity 에디터를 다운로드하고 설치했더라도, 툴에 액세스하려면 GitHub에서 다운로드 받은 이후 따로 설치해야 됩니다.
이 툴은 Unity 프로젝트에서 에셋 번들 설정을 검토하고 수정할 수 있도록 합니다. 또한 잘못된 번들이 생성되게 하는 수정 작업을 막고, 이미 존재하는 번들의 모든 관련 이슈를 알려줍니다. 그리고 기본 빌드 기능 역시 제공합니다.
인스펙터를 사용하여 수동으로 에셋을 선정하고 에셋 번들을 설정하는 대신, 이 툴을 사용할 수 있습니다. 툴은 버전 5.6 이상의 Unity 프로젝트에 적용할 수 있습니다. 이 툴을 적용하는 경우 창(Window) > AssetBundle Browser 라는 새로운 메뉴가 생성됩니다. 번들 설정과 빌드 기능은 새 창에서 두 개의 탭으로 나뉘어져 있습니다.
참고: 유틸리티는 정식 출시되지 않은 상태이므로, 사용하기 전에 프로젝트를 백업하는 것을 추천합니다.
이 창은 프로젝트에서 존재하는 에셋 번들을 관리하고 수정할 수 있는 익스플로러와 비슷한 인터페이스를 제공합니다. 처음 툴을 실행하는 경우, 툴은 배경에 존재하는 모든 번들 데이터를 구문분석(parsing)하면서 경고나 오류를 찾아 표시합니다. 이 툴은 최대한 프로젝트와 동기화를 하지만, 간혹 툴 외부 동작을 감지하지 못할 수도 있습니다. 오류 감지를 강제로 패스하거나 외부 변동 사항을 업데이트하고자 하는 경우 왼쪽 상단의 새로고침 버튼을 누르십시오.
이 창은 번들 리스트, 에셋 리스트, 에셋 세부 정보로 나뉘어 있습니다.
왼쪽 창은 프로젝트에서 존재하는 모든 번들의 리스트를 보여줍니다. 사용 가능한 기능은 다음과 같습니다.
번들 또는 번들 집합을 선택하면, 에셋 리스트 창에서 번들에 포함될 에셋 리스트를 볼 수 있습니다.
배리언트가 있는 번들은 진한 회색으로 표시되며, 확장시켜서 배리언트 리스트를 볼 수 있습니다.
번들이나 번들 폴더의 이름을 바꾸려면 마우스 오른쪽 버튼으로 클릭하거나 천천히 더블 클릭합니다.
번들이 오류가 있거나 정보 메시지가 있는 경우 오른쪽에 아이콘이 나타나게 됩니다. 아이콘 위에 마우스를 올리면 자세한 내용을 볼 수 있습니다.
번들에는 씬이 있고(이 경우 번들은 씬 번들이 됩니다) 다른 것들이 명시적으로 포함된 경우 해당 번들은 오류가 있는 것으로 표시됩니다. 이 경우 번들을 수정해야 빌드할 수 있습니다.
번들에서 에셋이 중복된 경우 경고가 표시됩니다(아래 에셋 리스트의 섹션 중복에 대한 자세한 내용이 있습니다).
번들이 빈 경우 정보 메시지가 표시됩니다. 빈 번들은 다양한 이유로 인해 불안정하며 간혹 리스트에서 사라질 수 있습니다.
번들 폴더의 경우, 폴더의 번들 중에서 최상위 메시지가 표시됩니다.
번들에서 에셋 중복을 해결하려면, 다음을 시도하십시오.
번들을 마우스 오른쪽 버튼으로 클릭하면 중복되는 것으로 판단되는 모든 에셋을 새 번들로 옮길 수 있습니다.
번들 집합을 마우스 오른쪽 버튼으로 클릭하면 선택된 모든 번들에서 중복되는 에셋을 새 번들로 옮기거나, 집합에서 공유되는 에셋만 새 번들로 옮길 수 있습니다.
에셋 리스트 창에서 중복되는 에셋을 드래그해서 직접 번들에 포함시킬 수 있습니다. 아래 에셋 리스트 피처에 자세한 내용이 있습니다.
마우스 오른쪽 버튼으로 클릭하거나 DEL 버튼을 누르면 번들이 삭제됩니다.
번들을 드래그해서 폴더에 넣거나, 폴더에서 빼거나, 번들끼리 서로 머지시킬 수 있습니다(단, 모두 씬 번들이 아니어야 합니다).
프로젝트 탐색기에서 에셋을 번들로 드래그하여 추가할 수 있습니다.
에셋을 빈 공간에 드래그하면 새 번들을 생성할 수 있습니다.
마우스 오른쪽 버튼으로 클릭하면 새 번들이나 번들 폴더를 생성할 수 있습니다.
“배리언트로 변환”을 하기 위해 마우스 오른쪽 버튼으로 클릭합니다.
이 경우 선택된 번들에 배리언트가 추가됩니다. (기본 이름은 “newvariant” 입니다)
선택된 번들에서 모든 에셋이 새 배리언트로 이동됩니다.
ComingSoon: 배리언트 간 불일치 감지 기능.
아이콘은 번들이 기본 번들인지 또는 씬 번들인지 표시합니다.
왼쪽 하단 창은 번들 리스트 창에서 선택된 번들의 세부 정보를 보여줍니다. 이 창은 가능한 경우 다음의 정보를 표시합니다.
총 번들 크기. 이 값은 모든 에셋이 차지하는 디스크 공간의 총 합입니다.
현재 번들이 종속하는 번들 리스트
현재 번들과 관련된 모든 메시지(오류/경고/정보)
오른쪽 상단 창은 번들 리스트에서 선택된 번들에 포함된 에셋의 리스트을 보여줍니다. 사용 가능한 기능은 다음과 같습니다.
번들에 포함되는 것으로 예상되는 모든 에셋을 볼 수 있습니다. 열 헤더를 눌러서 에셋 리스트를 정렬할 수 있습니다.
번들에 명시적으로 포함된 에셋을 볼 수 있습니다. 이는 번들에 명시적으로 할당된 에셋입니다. 인스펙터는 번들 포함 상태를 반영하며, 보기 상태에서는 에셋 이름 옆에 번들 이름이 표시됩니다.
번들에 암시적으로 포함된 에셋을 볼 수 있습니다. 에셋 이름 옆에 번들 이름으로 auto가 표시되며, 인스펙터로 이를 보는 경우 할당된 번들은 None 으로 표시됩니다.
에셋은 포함된 다른 에셋과의 종속성으로 인하여 선택된 번들에 추가되었습니다. 번들에 명시적으로 할당되지 않은 에셋만이 번들에 암시적으로 포함될 수 있습니다.
암시적으로 포함된 에셋 리스트가 불완전하다는 점을 참고하십시오. 머티리얼이나 텍스처가 올바르게 표시되지 않는 알려진 오류가 있습니다.
다수의 에셋이 종속성을 공유할 수 있으므로, 한 개의 에셋이 다수의 번들에 암시적으로 포함되는 일은 흔합니다. 만약 툴이 이런 경우를 발견하면, 해당 에셋과 번들을 둘 다 경고 아이콘으로 표시합니다.
중복 포함 경고를 해결하려면, 에셋을 새 번들로 수동으로 옮기거나, 번들을 마우스 오른쪽 버튼으로 클릭한 후 “중복 이동” 옵션 중 하나를 선택합니다.
프로젝트 탐색기에서 에셋을 이 창으로 드래그하면 해당 에셋을 선택된 번들에 추가할 수 있습니다. 이는 번들이 단 한 개만 선택되었으며 씬 번들이 아닌 경우에만 가능합니다.
에셋(명시적 또는 암시적)을 에셋 리스트에서 번들 리스트로 드래그하면 해당 에셋을 다른 번들이나 새로 생성된 번들에 추가할 수 있습니다.
마우스 오른쪽 버튼으로 클릭하거나 DEL 버튼을 누르면 에셋을 번들에서 제거할 수 있습니다(프로젝트에서는 제거되지 않습니다).
에셋을 선택하거나 더블 클릭하면 프로젝트 탐색기에 나타납니다.
번들에 폴더를 포함시키는 것에 대한 참고 사항입니다. 번들에 에셋 폴더를(프로젝트 탐색기로부터) 할당할 수 있습니다. 이를 브라우저에서 보는 경우 폴더 자체는 리스트에 명시적으로 할당된 것으로 나타나지만, 폴더의 에셋은 암시적으로 할당된 것으로 나타납니다. 이는 시스템이 번들에 에셋을 할당할 때 사용하는 우선 순위 시스템을 반영합니다. 예를 들어, 게임 에셋/프리팹에 5개의 프리팹이 있으며, “Prefabs” 폴더가 한 번들에 있는 것으로 표시하고, 실제 프리팹 중 하나(“PrefabA”)가 다른 번들에 있다고 가정한다면, 이 경우 “PrefabA”와 다른 4개의 프리팹은 서로 다른 번들에 존재하게 됩니다.
오른쪽 하단 창은 에셋 리스트 창에서 선택된 에셋의 세부 정보를 보여줍니다. 이 창은 상호 작용이 불가능하지만 에셋이 사용 가능한 경우 다음의 정보를 표시합니다.
에셋의 전체 경로
에셋이 번들에 암시적으로 할당된 이유
경고가 발생한 이유
오류가 발생한 이유
빌드 탭은 에셋 번들을 활용하기 위한 기본 빌드 기능을 제공합니다. 대부분의 전문적인 프로젝트에서 사용자들은 고급 빌드 설정이 필요합니다. 이 기본 빌드 기능이 사용자의 요구 조건에 더 이상 맞지 않으면 자신만의 빌드 코드를 작성해야 하는데, 그 출발점으로 이 툴에서 빌드 코드를 사용하는 것을 적극 추천합니다. 기본 빌드 기능의 인터페이스는 다음과 같습니다.
Build Target - 번들이 빌드될 플랫폼을 설정합니다.
Output Path - 빌드된 번들을 저장할 경로를 설정합니다. 기본값은 AssetBundles/ 입니다. 경로는 수동으로 수정하거나, “Browse”를 선택하여 수정할 수 있습니다. 기본값으로 돌아가려면, “Reset” 버튼을 누르십시오.
Clear Folders - 번들을 빌드하기 이전에 해당 경로의 폴더에 존재하는 모든 데이터를 삭제합니다.
Copy to StreamingAssets - 빌드가 완료된 이후 Assets/StreamingAssets으로 결과물을 복사합니다. 이 기능은 테스트 단계에서는 유용하지만, 출시 단계에서는 적합하지 않습니다.
Advanced Settings
Compression - 압축 없음이나 일반 LZMA, 또는 청크 기반 LZ4 압축 방식을 선택할 수 있습니다.
Exclude Type Information - 에셋 번들에 타입 정보를 포함시키지 마십시오.
Force Rebuild - 빌드 되어야 하는 번들을 다시 빌드합니다. 이 기능은 더 이상 존재하지 않는 번들은 삭제하지 않는다는 점에서 “폴더 삭제”와 다릅니다.
Ignore Type Tree Changes - 증가성 빌드를 체크하는 경우 타입 트리 변경을 무시하도록 허용합니다.
Append Hash - 해시를 에셋 번들 이름에 덧붙입니다.
Strict Mode - 빌드 도중 오류가 발생하는 경우 빌드가 성공하지 못하도록 합니다.
Dry Run Build - 모의 빌드를 진행합니다.
Build - 빌드를 실행합니다.