Version: 2022.3
언어: 한국어
WebGL 애플리케이션 빌드
배포 크기 및 코드 스트리핑

에셋 번들의 로드 시간 감소

콘텐츠가 시작되기 전에 모든 에셋 데이터를 다운로드해야 하므로 에셋을 메인 데이터 파일에서 AssetBundles로 이동하는 것이 좋습니다.에셋을 AssetBundles로 이동하면 사용자가 콘텐츠를 진행하면서 필요에 따라 에셋을 동적으로 로드하는 콘텐츠용 작은 로더 씬을 생성할 수 있습니다.AssetBundles에셋 데이터 메모리 관리에도 도움이 됩니다.AssetBundle.Unload를 호출하여 더 이상 필요하지 않은 에셋의 메모리에서 에셋 데이터를 언로드할 수 있습니다.

WebGL 플랫폼에서 AssetBundles를 사용할 때 다음 고려 사항을 적용하십시오.

  • 에셋 번들에서 메인 빌드에 사용되지 않는 클래스 타입을 사용하면 Unity는 이러한 클래스의 코드를 빌드에서 제거할 수도 있습니다.이로 인해 에셋 번들에서 에셋을 로드하려고 할 때 장애가 발생할 수 있습니다.이 문제를 해결하려면 BuildPlayerOptions.assetBundleManifestPath를 사용하거나 배포 크기 및 코드 스트리핑에서 다른 옵션을 참조하십시오.

  • WebGL은 스레딩을 지원하지 않습니다.HTTP 다운로드는 다운로드가 완료된 후에만 사용할 수 있으므로 Unity WebGL 빌드는 다운로드가 완료된 후 메인 스레드에서 에셋 번들 데이터의 압축을 풀고 메인 스레드를 차단해야 합니다.이러한 중단을 방지하기 위해 WebGL의 에셋 번들에는 LZMA 에셋 번들 압축을 사용할 수 없으며, 대신 온디맨드 방식으로 효율적으로 압축을 해제하는 LZ4를 사용하여 압축합니다.LZ4가 제공하는 것보다 압축 크기를 더 작게 해야 하는 경우, 에셋 번들에서 (LZ4 압축 외에) gzip 또는 Brotli 압축을 사용하도록 웹 서버를 설정하면 됩니다.이렇게 하는 방법에 대한 자세한 내용은 압축된 빌드 배포를 참조하십시오.

  • WebGL은 UnityWebRequestAssetBundle.GetAssetBundle을 통해 AssetBundle 캐싱을 지원합니다.이 메서드는 브라우저의 IndexedDB API를 사용하여 사용자의 기기에 캐시를 저장합니다.일부 브라우저는 IndexedDB를 제한적으로 지원할 수 있으며 모든 브라우저는 디스크에 데이터를 저장하기 위해 사용자의 권한을 요청할 수 있습니다.자세한 내용은 WebGL 브라우저 호환성을 참조하십시오.

WebGL 애플리케이션 빌드
배포 크기 및 코드 스트리핑