빌드시포함
용량이 증가 > 빌드시간 증가, 다운로드 용량증가, 접근성Down, 수정이 필요하면 다시 빌드
실행파일과 에셋 파일을 분리가능
실행파일 > 스토어에 올라간 파일
에셋파일 > 게임에 접속하여 패치로 다운로드하는 파일
Editor폴더 안에 AssetBundleBuilder 스크립트 작성
BuildPipeLine.BuildAssetBundles(경로, 압축옵션, 타겟플랫폼);
에셋을 사용하기 전에 에셋번들을 불러와야 함
AssetBundle.LoadFromFile
IEnumerator LoadAssetBundle{
UinityWebRequest www=UnityWebRequestAssetBundle.GetAssetBundle(url:"")
if(www.resuld == UnityWebreuquest.Result.Successs)}
불러온 파일로 prefab생성
단점
번거로움
번들 내부적으로 경로를 관리가 필요
메모리 관리 이슈
종속성 이슈
단점을 극복하기 위해 Addressable이 나옴
테스트할때 Resources를 사용 배포시에 번들 생성하는 로직을 만들기도 함
Window PackageManager Unityresister > Addressables 설치
Window AssetManagement > Addressable> Group
드레그로 추가
Key값만 알고있으면 경로가 바뀌어도 상관이 없음
BuildRemotoCatalog 채크
Build&LoadPath Remote
RemoteOption Custom 빌드Path/LoadPath 세팅
어드레서블 빌드세팅
어드레서블그룹 > 우측상단 빌드 > 디폴트빌드
고려할 사항
어드레서블 다운에 앞서 데이터 사용 동의를 하자>매번 다운로드x 서버 로컬 데이터가 다른 경우만 에셋 업데이트
런타임에서 사용을 위해 로드를 해야한다.
그룹/라벨에 따라 다양한 방법으로 로드 - 그룹별로 빌드>다운로드
라벨 실시간으로 사용할 때 모든 리소스를 로드하고 사용하지 않ㄴ느다
상황에 따라 필요한 리소스만 준비하여 사용
Stage나 던전등에 필요한 내용들을 라벨로 묶고 미리 로드할 수 있음
UI가 많지 않다면 모든 UI로드
필요할 때 로드하고 UIManager에서 캐싱해서 사용
주기적으로 리소스 해제 / 씬 전환시 유용
어드레서블 받기전에 필요한 데이터는 앱에 포함시키자
다운로드안내/동의텍스트(나라별)/UI등
비동기로 처리해야한다.