継続的なインテグレーション
継続的インテグレーション (CI) システムを使用して、Addressables コンテンツビルドとアプリケーションプレイヤービルドを実行することができます。このセクションでは、CI システムによる Addressables のビルドの一般的なガイドラインを示します。ただし、各プロジェクトには独自の要件と制限があるため、状況によっては適用されないガイドラインがあることに注意してください。
コンテンツビルダーの選択
Addressables コンテンツのビルド時に行う主な選択の 1 つは、コンテンツビルダーの選択です。デフォルトでは、AddressableAssetSettings.BuildPlayerContent() を呼び出すと、BuildScriptPackedMode スクリプトが IDataBuilder として使用されます。BuildPlayerContent() 関数は ActivePlayerDataBuilder 設定を確認し、このスクリプトの BuildDataImplementation(..) を呼び出します。
独自のカスタム IDataBuilder を実装し、それを CI ビルドに使用する場合は、AddressableAssetSettings の ActivePlayerDataBuilderIndex プロパティを設定します。デフォルトでは、適切な設定インスタンスには AddressableAssetSettingsDefaultObject.Settings を通じてアクセスできます。このインデックスは、AddressableAssetSettings.DataBuilders リストでの IDataBuilder の位置を参照します。以下のサンプルコードは、カスタム IDataBuilder を設定する方法を示しています。
#if UNITY_EDITOR
using UnityEditor.AddressableAssets;
using UnityEditor.AddressableAssets.Build;
using UnityEditor.AddressableAssets.Settings;
using UnityEngine;
internal class CustomDataBuilder
{
public static void SetCustomDataBuilder(IDataBuilder builder)
{
AddressableAssetSettings settings
= AddressableAssetSettingsDefaultObject.Settings;
int index = settings.DataBuilders.IndexOf((ScriptableObject)builder);
if (index > 0)
settings.ActivePlayerDataBuilderIndex = index;
else if (AddressableAssetSettingsDefaultObject.Settings.AddDataBuilder(builder))
settings.ActivePlayerDataBuilderIndex
= AddressableAssetSettingsDefaultObject.Settings.DataBuilders.Count - 1;
else
Debug.LogWarning($"{builder} could not be found " +
$"or added to the list of DataBuilders");
}
}
#endif
Addressables コンテンツビルダーのキャッシュのクリーンアップ
IDataBuilder の実装には、そのデータビルダーで作成されたファイルをすべてクリーンアップする ClearCachedData() メソッドが定義されています。例えば、デフォルトの BuildScriptPackedMode スクリプトでは以下が削除されます。
- コンテンツカタログ
- シリアル化された設定ファイル
- ビルドされた AssetBundle
- 作成されたすべての link.xml ファイル
CI プロセスの一部として IDataBuilder.ClearCachedData() を呼び出すと、以前のビルドで生成されたファイルがビルドに使用されないようにすることができます。
Scriptable Build Pipeline のキャッシュのクリーンアップ
Scriptable Build Pipeline (SBP) のキャッシュをクリーンアップすると、Library ディレクトリの BuildCache フォルダーと、ビルドで生成されたすべてのハッシュマップ、およびタイプデータベースが消去されます。Library/BuildCache フォルダーには、ビルド中に SBP によって作成された .info ファイルが含まれます。これらがある場合、以降のビルドでは、変更されていないデータを再び生成する代わりに、これらの .info ファイルからデータが読み取られます。
プロンプトダイアログを開かずにスクリプトで SBP キャッシュを消去するには、BuildCache.PurgeCache(false) を呼び出します。