- Firebase Storage를 활용하여 원격 저장소를 생성한다 .
- Firebase Storage와 Addressable을 위한 툴을 설치한다 .
- Addressable의 Remote Profile을 생성한다 .
- 원격 콘텐츠 빌드후 저장소에 업로드 한다 .
[ 원격 저장소 생성 - Firebase Storage ]
1 . Firebase Storage
[ 원격 저장소 생성하기 ]
https://yeoyeoyeo.tistory.com/category/%EC%9C%A0%EB%8B%88%ED%8B%B0/Firebase
'유니티/Firebase' 카테고리의 글 목록
yeoyeoyeo.tistory.com
- 해당 게시물을 참고하여 원격 저장소로 사용할 Firebase Storage를 생성하자 .
[ Firebase Tools 추가하기 ]
1 . Firebase Tools
[ Firebase Tools ]
- 해당툴은 정적링크 (http://)에 의존하지 않고 , Firebase API를 활용하여 에셋 위치를 동적으로 가져오는 기능을 한다 .
- 즉, Firebase Storage와 Addressable을 같이 쓰는 사람들을 위한 툴 .
[ 프로젝트에 추가하기 ]
- Package Manager의 Add package from git Url을 통해 추가 할 수 있다 .
https://gitlab.com/robinbird-studios/libraries/unity-plugins/firebase-tools.git
- 혹은 Packages - manifest.json의 dependencies에 내용을추가함으로 패키지를 받을 수 있다 .
2 . SetUp 하기
[ Remote Path 구성하기 ]
- Create 를 통해 프로필을 생성한다 . Test와 Release 환경 두가지를 만들었다 .
- Remote 경로는 Custom으로 설정후 LoadPath를 ( Firebase Storage 의 경로 ) / (개발 환경) / [BuildTarget]으로 하였다 . 이때 , BuildTarget은 다중 플랫폼 제공을 위해 설정하였다 .
- Firebase Storage의 경로는 Storage에서 확인 가능하다 . (gs로 시작)
[ Remote 그룹 구성하기 ]
- Build & Load Paths를 Remote로 설정한다 .
- Asset Bundle Compression은 LZMA 로 설정한다 .
- Asset Bindle Provider는 Firebase AssetBundle Provider 로 설정한다 .
- 이는 어드레서블이 Firebase Storage에서만 로드함을 의미한다 .
[ 스크립트 구성하기 ]
//해당 작업으로 어드레서블이 Firebase Storage에서 직접 데이터를 로드할 수 있게 한다 .
Addressables.ResourceManager.ResourceProviders.Add(new FirebaseStorageAssetBundleProvider());
Addressables.ResourceManager.ResourceProviders.Add(new FirebaseStorageJsonAssetProvider());
Addressables.ResourceManager.ResourceProviders.Add(new FirebaseStorageHashProvider());
// This requires Addressables >=1.75 and can be commented out for lower versions
//어드레서블 시스템 내부 ID 변환 함수를 설정한다
Addressables.InternalIdTransformFunc += FirebaseAddressablesCache.IdTransformFunc;
- 어드레서블 에셋을 로드하기 전 FirebaseStorage Provider와 Hooks를 AddressableAPI에 추가해야 한다 .
- Firebase Storage 에서 AssetBubdle , Json파일 , 해시파일을 로드하게 어드레서블 시스템을 확장하는 기능을 설정한다 .
- 이로 인해 Firebase Storage에 호스팅된 리소스를 동적으로 로드 , 사용하게 된다 .
FirebaseAddressablesManager.IsFirebaseSetupFinished = true;
- 완료후 다음을 수행한다 . 이제 어드레서블은 원격 에셋을 로드할 수 있다.
[ 빌드 스크립트 구성하기 ]
- AddressableAssetData -DataBuilders에는 빌드 스크립트들이 모여있다 . 해당 경로에 위 파일을 추가한다 .
- Addressable Asset Setting의 Build and Play Mode Scripts에 +버튼으로 Firebase Storage Build를 추가해준다 .
- 모든게 완료된후 빌드가 정상정으로 되었다면 로컬 빌드 경로에 setting.json이 있다 .
- 해당 파일에 m_provider가 FirebaseStorageHashProvider라면 완료된것이다 .
[ 원격 콘텐츠 빌드후 업로드하기 ]
1 . 원격 설정하기
- AddressableAssetData - Assressable Asset Setting를 원격용으로 설정하자 .
[ Profile 설정 ]
- 방금 생성한 원격용 프로필로 설정한다 .
[ Remote catalog 생성하기 ]
- Build Remote catalog를 활성화시키고 , Remote로 패스를 설정한다 .
- 그룹에 대한 원격 세팅은 위에서 한 것을 참고하자 .
2 . 원격 콘텐츠 빌드하기
[ 원격 콘텐츠 빌드 ]
- 그룹창으로 이동 , Firebase Storage 빌드를 실행한다 .
- 프로필에서 설정한 BulidPath에 catalog.json / catalog.hash 와 번들들이 생성되어 있다 .
3 . 원격 콘텐츠 업로드
[ 경로 생성후 업로드 ]
- Profile의 Load Path와 같이 내부에 파일을 생성한다 .
- Test - Android 폴더를 생성하였다 .
- 파일 업로드로 생성된 빌드 아티팩트들을 넣어준다 .
- 이로써 에셋 번들을 다운받기 위한 준비는 끝났다 .
'유니티 > Addressable' 카테고리의 다른 글
[ Addressable ] 07 . 원격에서 에셋 로드하기 (0) | 2024.08.02 |
---|---|
[ Addressable ] 05 . Addressable 콘텐츠 업데이트 하기 (2) | 2024.07.19 |
[ Addressable ] 04 . Addressable 콘텐츠 빌드하기 (0) | 2024.07.18 |
[ Addressable ] 03 . Addressable 그룹으로 관리하기 (0) | 2024.07.12 |
[ Addressable ] 02 . Addressable 로 프로젝트 전환하기 (0) | 2024.07.10 |