Version: 2023.1
언어: 한국어
커스텀 에셋 팩 생성
Android용 그래픽스

런타임 시 에셋 팩 관리

Unity는 런타임 시 에셋 팩을 관리할 수 있도록 API를 제공합니다. Google의 PlayCore API를 사용하므로 PlayCore와 동일한 제한이 있으며, install-time 에셋 팩은 관리할 수 없습니다. 또한 PlayCore API를 사용하면 애플리케이션에서 PlayCore 플러그인을 사용해야 합니다. 프로젝트에 커스텀 에셋 팩 또는 Unity가 생성한 에셋 팩 등의 에셋 팩이 있는 경우, Unity는 자동으로 PlayCore 종속성을 애플리케이션의 매니페스트에 추가합니다.

에셋 팩을 다운로드하고 에셋에 액세스하는 방법은 에셋 팩 전송 모드에 따라 다릅니다. 에셋 팩 전송 모드에는 다음과 같이 세 가지 방법이 있습니다.

  • install-time: Google Play는 기기가 애플리케이션을 설치할 때 자동으로 install-time 에셋 팩을 다운로드합니다. Google Play는 이러한 에셋 팩을 기본 애플리케이션의 일부로 인식하며 최종 사용자는 전체 애플리케이션을 제거하지 않고는 이 에셋 팩을 제거할 수 없습니다. PlayCore API는 install-time 에셋 팩을 처리하지 않으므로 상태를 확인하거나 다운로드 요청 또는 install-time 에셋 팩을 제거할 수 없습니다. 또한 Unity에서 생성한 install-time 에셋 팩에 있는 스트리밍 에셋을 제외하고 이러한 에셋 팩 안에 있는 에셋에 직접 액세스할 수 없습니다. 스트리밍 에셋에 액세스하려면 Application.streamingAssetsPath를 사용하여 스트리밍 에셋 위치에 대한 경로를 찾은 다음 UnityWebRequest를 사용하여 해당 경로에 있는 에셋에 액세스합니다. 커스텀 에셋 팩을 생성하는 경우 표준 파일 API를 사용하여 안에 있는 에셋에 액세스할 수 없습니다. 대신 Android의 AssetManager API를 사용합니다.
  • fast-follow: Google Play는 애플리케이션을 설치한 후 자동으로 fast-follow 에셋 팩을 다운로드하기 시작합니다. 하지만 일부 fast-follow 에셋 팩은 애플리케이션이 처음 실행될 때 사용하지 못할 수 있습니다. 상태를 확인하고 fast-follow 에셋 팩을 다운로드하려면 에셋 팩 다운로드를 참조하십시오.
  • on-demand: Google Play는 on-demand 에셋 팩을 자동으로 다운로드하지 않습니다. 따라서 다운로드를 직접 시작해야 합니다. 자세한 방법은 에셋 팩 다운로드를 참조하십시오.

전송 모드에 대한 자세한 내용은 전송 모드를 참조하십시오.

에셋 팩 다운로드

애플리케이션에서 fast-follow 또는 on-demand 에셋 팩을 사용하는 경우, 애플리케이션이 에셋 팩 안의 에셋에 액세스하려면 기기에 에셋 팩을 다운로드해야 합니다. 에셋 팩의 상태를 확인하고 기기에 설치되지 않은 경우 다운로드하려면 각 에셋 팩의 이름을 먼저 알아야 합니다. Unity가 생성한 에셋 팩의 이름을 확인하려면 AndroidAssetPacks.GetCoreUnityAssetPackNames를 호출합니다. 커스텀 에셋 팩의 이름을 알 수 있는 런타임 API는 없기 때문에 직접 추적해야 합니다. 빌드 시에 커스텀 에셋 팩의 이름을 설정하며, 이는 디렉토리 이름입니다.

에셋 팩의 이름을 확인하고 각 에셋 팩의 상태를 확인하려면 AndroidAssetPacks.GetAssetPackStateAsync를 호출하여 에셋 팩 이름을 전달합니다. 이렇게 하면 쿼리한 에셋 팩의 상태가 반환되며, 이 결과를 사용하여 에셋 팩을 다운로드해야 할지 여부를 결정할 수 있습니다. Unity가 생성한 모든 에셋 팩의 상태를 빠르게 쿼리하려면 AndroidAssetPacks.coreUnityAssetPacksDownloaded를 사용할 수 있습니다. 이렇게 하면 첫 번째 씬을 제외한 다른 씬을 로드하거나 Unity가 처리하는 다른 리소스에 액세스하기 전에 Unity가 생성한 모든 에셋 팩을 사용할 수 있는지 확인할 수 있습니다.

다운로드해야 하는 모든 에셋 팩의 경우 AndroidAssetPacks.DownloadAssetPackAsync를 호출하여 해당 에셋 팩의 이름을 입력합니다. 에셋 팩을 다운로드하는 동안 다운로드가 일시 정지되거나 중단될 수 있기 때문에 다운로드 상태를 모니터링해야 합니다. 이를 수행하는 데는 두 가지 방법이 있습니다.

추가 리소스

커스텀 에셋 팩 생성
Android용 그래픽스