에셋 번들 워크플로
에셋 번들 빌드

에셋 번들을 위한 에셋 준비

중요한 참고 사항: 에셋 번들 관리자는 2018.2 이상의 Unity 버전에서 지원이 중단될 예정입니다. 에셋 스토어에서는 더 이상 제공되지 않지만, AssetBundleDemo Bitbucket 저장소에서는 계속 다운로드할 수 있습니다. Unity 버전 2018.2 이상을 사용하는 경우 어드레서블 에셋에 대한 문서를 참조하십시오.

에셋 번들을 사용할 경우 에셋을 원하는 번들에 마음대로 할당할 수 있습니다. 하지만 번들을 설정할 때 고려해야 할 몇 가지 전략이 있습니다. 아래의 그룹화 전략은 특정 프로젝트에 적합하다고 생각되는 방법으로 사용할 수 있습니다. 아래 전략을 적합하다고 생각되는 방법으로 자유롭게 섞어서 조합해 보십시오.

논리적 엔티티 그룹화(Logical Entity Grouping)

논리적 엔티티 그룹화에서는 에셋이 나타내는 프로젝트의 기능적인 부분에 따라 에셋을 에셋 번들에 할당합니다. 여기에는 사용자 인터페이스 같은 섹션, 캐릭터, 환경, 그리고 애플리케이션 수명 내내 자주 나타날 수 있는 기타 모든 것이 포함됩니다.

예제

  • 사용자 인터페이스 화면의 모든 텍스처 및 레이아웃 데이터 번들링
  • 문자/문자 집합의 모든 모델 및 애니메이션 번들링
  • 여러 레벨에서 공유되는 배경 조각의 텍스처 및 모델 번들링

논리적 엔티티 그룹화는 다운로드 가능 콘텐츠(DLC)에 적합합니다. 모든 것을 이런 식으로 분리하면 엔티티를 하나만 변경하고 변경되지 않은 추가 에셋을 다운로드하지 않아도 될 수 있기 때문입니다.

이 전략을 올바르게 이행하는 데 가장 중요한 비결은 에셋을 각 번들에 할당하는 개발자가 각 에셋이 프로젝트에서 사용될 시기와 위치를 정확히 알아야 한다는 것입니다.

타입 그룹화(Type Grouping)

이 전략에서는 오디오 트랙이나 언어 현지화 파일 등 타입이 비슷한 에셋을 하나의 에셋 번들에 할당합니다.

타입 그룹화는 여러 플랫폼에서 사용될 에셋 번들을 빌드하는 데 상대적으로 효과적인 전략 중 하나입니다. 예를 들어, windows와 mac의 오디오 압축 설정이 동일한 경우 모든 오디오 데이터만 에셋 번들에 패키지로 포함시키고 해당 번들을 재사용할 수 있지만, 셰이더는 특정 플랫폼에만 해당되는 옵션과 함께 컴파일되는 경향이 있으므로 mac용으로 빌드하는 셰이더 번들을 windows에서 재사용하지 못할 수 있습니다. 또한, 이 메서드는 에셋 번들이 더 많은 Unity 플레이어 버전과 호환되도록 하는 데도 매우 유용합니다. 텍스트 압축 포맷 및 설정은 코드 스크립트 또는 프리맵 같은 것보다 덜 자주 변경되기 때문입니다.

동시 콘텐츠 그룹화(Concurrent Content Grouping)

동시 콘텐츠 그룹화는 동시에 로드되고 사용될 에셋을 하나의 번들로 묶는 개념입니다. 이 번들 타입은 각 레벨의 캐릭터, 텍스처, 음악 등이 완전히 다른 레벨 기반 게임에 사용되는 번들 타입이라고 생각할 수 있습니다. 이런 에셋 번들 중 하나에 있는 에셋이 해당 번들의 나머지 에셋이 사용되는 시간에만 동시에 사용된다고 100% 확신할 수 있기를 원합니다. 동시 콘텐츠 그룹화 번들에 포함된 에셋 하나에 종속성이 있으면 로드 시간이 크게 증가합니다. 해당 에셋의 전체 번들을 다운로드해야 하기 때문입니다.

동시 콘텐츠 그룹화의 가장 일반적인 이용 사례는 씬 기반 번들입니다. 이 할당 전략에서는 각 씬 번들에 해당 씬 종속성이 모두 포함되거나 대부분 포함됩니다.

필요에 따라 위 전략이 당연히 한 프로젝트에 공존할 수 있고, 또 그래야 합니다. 특정 시나리오에 가장 적합한 에셋 할당 전략을 사용하면 프로젝트의 효율이 크게 높아집니다.

예를 들어. 한 프로젝트에서 다양한 플랫폼의 사용자 인터페이스(UI) 요소를 자체적인 플랫폼 UI 관련 번들로 그룹화하지만 대화식 콘텐츠는 레벨/씬별로 그룹화하기로 결정할 수 있습니다.

어떤 전략을 따르든 관계없이, 아래의 추가 팁을 항상 염두에 두는 것이 좋습니다.

  • 자주 업데이트되는 오브젝트는 변경 빈도가 낮은 오브젝트와 다른 별개의 에셋 번들로 나누십시오.
  • 동시에 로드될 가능성이 큰 오브젝트(모델, 텍스처 및 애니메이션 등)를 그룹화하십시오.
  • 완전히 다른 에셋 번들의 에셋 하나에 종속된 여러 에셋 번들에 오브젝트 여러 개 있는 경우, 별도의 에셋 번들로 종속성을 옮기십시오. 여러 에셋 번들이 다른 에셋 번들의 동일한 에셋 그룹을 참조하는 경우, 이런 종속성을 공용 에셋 번들로 모아서 중복을 줄이면 효과적일 수 있습니다.
  • SD 또는 HD 에셋처럼 두 오브젝트 집합이 동시에 로드될 가능성이 거의 없는 경우, 각 에셋이 다른 에셋 번들에 포함되도록 하십시오.
  • 동시에 로드되는 경우가 드문 오브젝트가 에셋 번들의 50% 미만인 경우 번들을 분할하는 방법을 고려하십시오.
  • 작지만(에셋 5–10개 미만) 콘텐츠가 동시에 로드되는 경우가 많은 에셋 번들을 합치는 방법을 고려하십시오.
  • 오브젝트 그룹이 단순히 같은 오브젝트의 다른 버전에 불과할 경우, 에셋 번들 배리언트를 고려하십시오.

  • 2017–05–15 페이지 게시됨
에셋 번들 워크플로
에셋 번들 빌드