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 사용자 매뉴얼 기술 자료 커맨드 라인 인자를 참조하십시오.