Unity は、ランタイムにアセットパックを管理するために、API を提供しています。これらの API は Google の PlayCore API を使用しているため、PlayCore と同じ制限があり、install-time
アセットパックを管理することはできません。PlayCore API を使用するということは、アプリケーションが PlayCore プラグインを必要とするということでもあります。プロジェクトにアセットパック (カスタム アセットパックまたは Unity が生成したアセットパック) がある場合、Unity はアプリケーションのマニフェストに PlayCore の依存関係を自動的に追加します。
アセットパックをダウンロードし、そのアセットにアクセスする方法は、アセットパックの配信モードによって異なります。アセットパックの配信モードは 3 種類あります。
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.coareUnityAssetPacksDownloaded を使用します。これは、最初のシーン以外をロードしたり、Unity が扱う他のリソースにアクセスしようとする前に、Unity が生成したすべてのアセットパックが利用可能であることを確認できるため便利です。
ダウンロードが必要なアセットパックごとに、AndroidAssetPacks.DownloadAssetPackAsync にアセットパックの名前を渡して呼び出します。アセットパックのダウンロード中は、ダウンロード状態を監視してください。なぜなら、ダウンロードが一時停止したり、失敗したりすることがあるからです。これを行うには 2 つの方法があります。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.