Addressables の初期化のカスタマイズ
Addressables システムは、Addressable アセットのロードまたは他の Addressable API の呼び出しを、ランタイム時に最初に実行するときに初期化されます。それより前に Addressables を初期化するには、Addressables.InitializeAsync を呼び出します (この関数は、既に初期化が行われている場合は何もしません)。
初期化操作では、以下のタスクが実行されます。
- ResourceManager と ResourceLocators を設定します。
- Addressables で作成された設定データを StreamingAssets からロードします。
- すべての [初期化オブジェクト] の操作を実行します。
- コンテンツカタログをロードします。デフォルトでは、Addressables は最初にコンテンツカタログの更新があるかどうかを確認し、新しいカタログあればダウンロードします。
初期化の動作は、以下の Addressables 設定によって変更することができます。
- Only update catalogs manually: 更新されたカタログを自動的には確認しません。カタログの手動更新の詳細については、[カタログの更新] を参照してください。
- Build Remote Catalog: リモートカタログがない場合、Addressables はリモートコンテンツのロードを実行しません。
- Custom certificate handler: リモートアセットホスティングサービスにアクセスするためにカスタム証明書ハンドラーが必要な場合に、このハンドラーを識別します。
- Initialization object list: 初期化操作中に呼び出される IObjectInitializationDataProvider ScriptableObject をアプリケーションに加えます。
初期化操作が開始される前に、以下のランタイムプロパティを設定する必要があります。
- Custom URL transform function (カスタム URL 変換関数)
- ResourceManager exception handler (ResourceManager 例外ハンドラー)
- [プロファイル変数] でカスタムランタイムプレースホルダーとして使用される静的プロパティ
初期化オブジェクト
オブジェクトを Addressable アセット設定にアタッチし、ランタイム時に初期化プロセスに渡すことができます。例えば、CacheInitializationSettings オブジェクトを作成して、Unity の [キャッシュ] 設定をランタイム時に初期化することができます。独自のタイプの初期化オブジェクトを作成するには、IObjectInitializationDataProvider インターフェースを実装した ScriptableObject を作成します。このオブジェクトを使用して、ランタイムデータと一緒に Addressables に加えられる ObjectInitializationData アセットを作成します。
キャッシュ初期化オブジェクト
Unity の [キャッシュ] 設定をランタイム時に初期化するには、CacheInitializationSettings オブジェクトを使用します。
Addressables システムで使用されるキャッシュ初期化設定を指定するには、以下の手順に従います。
- CacheInitializationSettings アセットを作成します (メニュー: Assets > Addressables > Initialization > Cache Initialization Settings)。
Project パネルで新しいアセットファイルを選択すると、インスペクターに設定が表示されます。
必要に応じて設定を調整します。
- Addressables Settings インスペクター (メニュー: Window > Asset Management > Addressables > Settings) を開きます。
- インスペクターの Initialization Objects (初期化オブジェクト) セクションで、+ ボタンをクリックして新しいオブジェクトをリストに加えます。
- File ダイアログで CacheInitializationSettings アセットを選択し、Open をクリックします。
- キャッシュ設定オブジェクトがリストに加えられます。
ランタイム時に Addressables が初期化されると、これらの設定がデフォルトの Unity [キャッシュ] に適用されます。設定は、Addressables システムでダウンロードされた AssetBundle だけでなく、デフォルトキャッシュ内のすべての AssetBundle に適用されます。Unity キャッシュシステムの詳細については、Caching を参照してください。
Note
Unity 202.1 以前でビルドされた Android アプリケーション、または Android 9 以前で動作している Android アプリケーションでは、非圧縮 AssetBundle からしかビデオを再生できません。CacheInitializationSettings
オブジェクトを使用して Compress Bundles (バンドルの圧縮) オプションを無効にすると、キャッシュの再圧縮を無効にできます。