원격 콘텐츠 사전 다운로드
콘텐츠를 디스크에 캐시하여 애플리케이션에서 필요할 때 더 빠르게 액세스할 수 있도록 콘텐츠를 사전에 다운로드하려는 경우 Addressables.DownloadDependenciesAsync
메서드를 사용할 수 있습니다. 이 메서드는 어드레서블 엔티티와 모든 종속성을 백그라운드 작업으로 다운로드합니다.
Addressables.DownloadDependenciesAsync
메서드를 호출하면 전달한 주소 또는 레이블에 대한 종속성을 로드합니다. 일반적으로 이는 에셋 번들입니다.
이 호출로 반환되는 AsyncOperationHandle
구조체에는 다운로드 진행률을 모니터링하고 표시하는 데 사용할 수 있는 PercentComplete 속성이 포함되어 있습니다. 콘텐츠가 로드될 때까지 앱이 대기하도록 할 수도 있습니다.
PercentComplete
PercentComplete는 단일 AsyncOperationHandle
이 처리하는 기본 작업의 여러 측면을 고려합니다. 진행이 선형적이지 않거나 선형적인 것처럼 보이는 경우가 있을 수 있습니다. 이는 빠른 작업과 더 오래 걸리는 작업에 동일한 가중치를 부여하기 때문일 수 있습니다.
예를 들어 다운로드하는 데 어느 정도의 시간이 걸리는 원격 위치에서 로드하려는 에셋이 있고 로컬 번들을 종속성으로 사용하는 경우, 계속 진행하기 전에 PercentComplete가 50%로 뛰는 것을 볼 수 있습니다. 로컬 번들이 원격 번들보다 훨씬 빠르게 로드될 수 있기 때문입니다. 하지만 시스템이 인식하는 것은 두 개의 작업이 완료되어야 한다는 사실뿐입니다.
다운로드 전에 사용자에게 동의를 구하려면 Addressables.GetDownloadSize
를 사용하여 지정된 주소 또는 레이블에서 콘텐츠를 다운로드하는 데 공간이 얼마나 필요한지를 반환합니다. 이 경우 이전에 다운로드한 번들 중 Unity의 에셋 번들 캐시에 남아 있는 모든 번들이 고려됩니다.
앱에 사용할 에셋을 미리 다운로드하는 것이 유리할 수 있지만, 그렇지 않은 경우도 있습니다. 예제:
- 애플리케이션에 많은 양의 온라인 콘텐츠가 있고 일반적으로 사용자가 콘텐츠의 일부와만 상호 작용할 것으로 예상하는 경우.
- 앱이 작동하려면 온라인에 연결해야 하는 경우. 앱의 모든 콘텐츠가 작은 번들로 구성된 경우 필요에 따라 콘텐츠를 다운로드하도록 선택할 수 있습니다.
콘텐츠가 로드될 때까지 기다리기 위해 PercentComplete 값을 사용하는 대신, 사전 로드 기능을 사용하여 다운로드가 시작되었음을 표시한 다음 계속 진행할 수 있습니다. 이렇게 구현하려면 필요한 시간까지 에셋 로딩이 완료되지 않은 경우를 처리하기 위해 로딩 또는 대기 화면이 필요합니다.