CI(지속적 통합)를 사용하여 어드레서블 빌드
CI(지속적 통합)를 사용하면 어드레서블 콘텐츠 빌드와 애플리케이션 플레이어 빌드를 수행할 수 있습니다. 이 페이지에서는 CI 시스템을 사용한 어드레서블 빌드에 관해 일반적인 가이드라인을 제공합니다.
콘텐츠 빌더 선택
어드레서블 콘텐츠를 빌드할 때 주요 선택 사항 중 하나는 콘텐츠 빌더를 선택하는 것입니다. 기본적으로 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
어드레서블 콘텐츠 빌더 캐시 삭제
IDataBuilder 구현은 해당 데이터 빌더에 의해 생성된 파일을 클린업하는 ClearCachedData 메서드를 정의합니다. 예를 들어 기본 BuildScriptPackedMode 스크립트는 다음을 삭제합니다.
- 콘텐츠 카탈로그
- 직렬화된 설정 파일
- 빌드된 에셋 번들
- 생성된 link.xml 파일
IDataBuilder.ClearCachedData를 CI 프로세스의 일부로 호출하여 빌드가 이전 빌드에 의해 생성된 파일을 사용하지 않게 할 수 있습니다.
스크립터블 빌드 파이프라인 캐시 삭제
SBP(스크립터블 빌드 파이프라인) 캐시를 삭제하면 빌드 및 유형 데이터베이스에서 생성된 모든 해시 맵과 함께 Library 디렉토리의 BuildCache 폴더가 삭제됩니다. Library/BuildCache 폴더에는 빌드 중에 SBP가 생성한 .info 파일이 포함되어 있어, 변경되지 않은 데이터를 다시 생성하는 대신 이 .info 파일에서 데이터를 읽어 후속 빌드 속도를 높일 수 있습니다.
프롬프트 다이얼로그를 열지 않고 스크립트에서 SBP 캐시를 삭제하려면 BuildCache.PurgeCache(false)를 호출하십시오.
커맨드 라인 인자를 사용하거나 CI(지속적 통합)를 통해 어드레서블 콘텐츠 또는 플레이어 빌드를 빌드할 때는 각 타겟 플랫폼에 대해 Unity 에디터를 다시 시작해야 합니다. 이렇게 하면 Unity가 플랫폼에 대한 스크립트 컴파일이 완료될 때까지 -executeMethod를 호출할 수 없습니다. 커맨드 라인 인자를 사용하는 방법에 대한 자세한 내용은 Unity 사용자 매뉴얼 기술 자료 커맨드 라인 인자를 참조하십시오.