에셋 제공을 통합할 때 Unity 게임은 Addressables 또는 AssetBundle을 사용하여 애셋 팩에 액세스할 수 있습니다. Addressables는 Unity 2019.4 및 이후 버전으로 빌드된 게임을 위한 최신 권장 애셋 제공 솔루션인 반면, AssetBundle은 Unity 2017.4 및 2018.4의 애셋 팩을 지원합니다.
Unity Addressable
Unity 2019.4 및 이후 버전으로 빌드된 게임은 Android에서 에셋 제공용으로 Addressables를 사용해야 합니다. Unity는 Addressables를 사용한 Android 애셋 팩을 처리하기 위한 Play Asset Delivery(PAD) API를 제공합니다. Addressables 사용에 관한 자세한 내용은 다음을 참고하세요.
- Android용 Addressables 패키지
- Unity용 PAD 가이드
- Unity용 PAD API 참조 문서
AssetBundle 파일 사용
Unity 2017.4 및 2018.4를 사용하여 빌드된 게임은 Android에서 애셋 제공용으로 AssetBundle 파일을 사용할 수 있습니다. Unity AssetBundle 파일에는 앱이 실행되는 동안 Unity 엔진에서 로드할 수 있는 직렬화된 애셋이 포함되어 있습니다. 이러한 파일은 플랫폼에 따라 다르며(예: Android용으로 빌드) 애셋 팩과 함께 사용할 수 있습니다. 가장 흔하게 하나의 AssetBundle 파일은 단일 애셋 팩으로 패키징되며, 팩은 AssetBundle과 동일한 이름을 사용합니다. 애셋 팩을 더 유연하게 생성하려면 API를 사용하여 애셋 팩을 구성해야 합니다.
런타임 시 Unity용 Play Asset Delivery 클래스를 사용하여 애셋 팩에 패키징된 AssetBundle을 검색합니다.
기본 요건
- 개발 환경 설정
OpenUPM-CLI
OpenUPM CLI가 설치되어 있으면 다음 명령어를 실행하여 OpenUPM 레지스트리를 설치할 수 있습니다.
openupm add com.google.play.assetdeliveryOpenUPM
Unity 메뉴 옵션 Edit(수정) > Project Settings(프로젝트 설정) > Package Manager(패키지 관리자)를 선택하여 package manager settings(패키지 관리자 설정)를 엽니다.
OpenUPM을 Package Manager(패키지 관리자) 창에 범위가 지정된 레지스트리로 추가합니다.
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.assetdelivery com.google.android.appbundleUnity 메뉴 옵션 Window(창) > Package Manager(패키지 관리자)를 선택하여 package manager menu(패키지 관리자 메뉴)를 엽니다.
관리자 범위 드롭다운을 설정하여 My Registries(내 레지스트리)를 선택합니다.
패키지 목록에서 Unity용 Google Play Integrity 플러그인 패키지를 선택하고 Install을 누릅니다.
GitHub에서 가져오기
GitHub에서 최신
.unitypackage버전을 다운로드합니다.Unity 메뉴 옵션 Assets(확장 소재) > Import package(패키지 가져오기) > Custom Package(맞춤 패키지)를 선택하고 모든 항목을 가져와서
.unitypackage파일을 가져옵니다.
UI를 사용하여 AssetBundle 구성
다음과 같이 애셋 팩에서 각 AssetBundle을 구성합니다.
- Google > Android App Bundle > Asset Delivery Settings를 선택합니다.
- AssetBundle 파일이 직접 포함된 폴더를 선택하려면 Add Folder를 클릭합니다.
각 번들에 대해 Delivery Mode를 Install Time, Fast Follow 또는 On Demand로 변경합니다. 오류 또는 종속 항목을 해결하고 창을 닫습니다.
Google > Build Android App Bundle을 선택하여 App Bundle을 빌드합니다.
(선택사항) 다양한 텍스처 압축 형식을 지원하도록 App Bundle을 구성합니다.
API를 사용하여 애셋 팩 구성
자동화된 빌드 시스템의 일부로 실행할 수 있는 편집기 스크립트를 통해 Asset Delivery를 구성할 수 있습니다.
AssetPackConfig 클래스를 사용하여 Android App Bundle 빌드에 포함할 애셋은 물론 애셋의 제공 모드를 정의합니다. 이러한 애셋 팩에는 AssetBundle을 포함하지 않아도 됩니다.
public void ConfigureAssetPacks {
// Creates an AssetPackConfig with a single asset pack, named
// examplePackName, containing all the files in path/to/exampleFolder.
var assetPackConfig = new AssetPackConfig();
assetPackConfig.AddAssetsFolder("examplePackName",
"path/to/exampleFolder",
AssetPackDeliveryMode.OnDemand);
// Configures the build system to use the newly created assetPackConfig when
// calling Google > Build and Run or Google > Build Android App Bundle.
AssetPackConfigSerializer.SaveConfig(assetPackConfig);
// Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
BuildBundle(new buildPlayerOptions(), assetPackConfig);
}
또한 Bundletool 클래스의 정적 BuildBundle 메서드를 사용하여 BuildPlayerOptions 및 AssetPackConfig가 지정된 애셋 팩이 있는 Android App Bundle을 생성할 수도 있습니다.
자세한 가이드는 Unity 게임에서 Play Asset Delivery 사용 Codelab을 참고하세요.
Play Asset Delivery Unity API와 통합
Play Asset Delivery Unity API는 애셋 팩을 요청하고 다운로드를 관리하며 애셋에 액세스하기 위한 기능을 제공합니다. 먼저 프로젝트에 Unity 플러그인을 추가해야 합니다.
API에서 사용하는 함수는 애셋 팩을 생성한 방식에 따라 다릅니다.
플러그인 UI를 사용하여 애셋 팩을 생성했다면 플러그인으로 구성한 애셋 팩을 선택합니다.
API(또는 플러그인 UI)를 사용하여 애셋 팩을 생성했다면 API로 구성한 애셋 팩을 선택합니다.
다음 단계
로컬 및 Google Play에서 Asset Delivery를 테스트합니다.