섹션 8 : 에셋 번들을 활용한 패치 시스템
에셋 번들 패치는 새로운 에셋 번들을 다운로드하고 기존 에셋 번들을 교체하는 것처럼 간단하다. WWW.LoadFromCasheOrDownload나 UnityWebRequest를 사용하여 응용 프로그램의 캐시된 에셋 번들을 관리하는 경우 선택한 API의 매개변수에 다른 버전을 전달하면 새 에셋번들이 다운로드 된다.
패치 시스템에서 해결해야할 더 큰 문제는 대체할 에셋 번들을 찾아내는 것이다. 패치 시스템에는 2가지의 정보 목록이 필요하다 :
- 현재 다운로드 되어 있는 에셋 번들의 목록과 그 버전의 정보
- 서버에 올라가 있는 에셋 번들의 목록과 그 버전의 정보
패치 시스템은 서버 측 에셋 번들의 목록을 다운로드하고 현재 다운로드되어 있는 에셋 번들의 목록과 비교해야 한다. 누락된 에셋 번들이나 버전 정보가 변경된 에셋 번들은 다시 다운로드해야 한다.
에셋 번들의 변경 사항을 찾아내는 사용자 정의 시스템을 제작할 수도 있다. 자체적인 시스템을 제작하는 대부분의 개발자는 에셋 번들 파일 정보 목록에 JSON과 같은 업계 표준 데이터 형식을 사용하고 MD5와 같은 체크섬 계산을 하는 표준 C# 클래스를 사용하는 것을 선택한다.
유니티는 데이터를 결정적 방식(deterministic manner)으로 정렬하여 에셋 번들을 빌드한다. 그렇기 때문에 커스텀 다운로더가 있는 응용 프로그램에서 차등 패치 시스템을 구현할 수 있다.
유니티는 차등 패치를 위한 기본 메커니즘을 제공하지 않으며 WWW.LoadFromCacheOrDownload나 UnityWebRequest도 기본 제공 캐싱 시스템을 사용할 때 차등 패치를 수행하지 않는다. 차등 패치가 필요한 경우에는 커스텀 다운로더를 직접 제작해야 한다.
[유니티 어필리에이트 프로그램]
아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.
[투네이션]
[Patreon]
[디스코드 채널]
'Unity3D > AssetBundles' 카테고리의 다른 글
[Unity3D] UnityWebRequest를 이용해서 원격 서버에서 받아온 에셋 번들을 로컬 저장소에 저장하는 방법(5.6기준) (16) | 2017.04.27 |
---|---|
[Unity3D] 에셋 번들(섹션9)(5.6 초안 문서 번역) (0) | 2017.04.26 |
[Unity3D] 에셋 번들(섹션7)(5.6 초안 문서 번역) (0) | 2017.04.26 |
[Unity3D] 에셋 번들(섹션6)(5.6 초안 문서 번역) (3) | 2017.04.26 |
[Unity3D] 에셋 번들(섹션5)(5.6 초안 문서 번역) (0) | 2017.04.25 |