어드레서블이 시스템에 제공된 키를 기반으로 에셋의 실제 위치를 조회하는데 사용되는 데이터 저장소.
어드레서블을 사용할 때 원격 카탈로그 를 사용하게 된다.
AddressaleAssetSettings의 인스펙터창에서 확인이 가능하다.
어드레서블 시스템은 런타임에 *(초기화) 할 때 업데이트된 콘텐츠 카탈로그를 확인합니다. 업데이트된 콘텐츠 카탈로그가 있는 경우 시스템은 새 카탈로그를 다운로드하고 에셋을 로드할 때 모든 에셋 번들의 최신 버전을 다운로드합니다.
AddressableAssetSetting 의 인스팩터에 Only Update Catalogs Manually 라는 항목이 있다.
이걸 체크하게 된다면 Addressables.UpdateCatalogs()
함수를 이용해 직접 업데이트를 해줘야 한다.
Addressables.CheckForCatalogUpdates();
로 카탈로그 업데이트 내용이 있는지 체크를 할 수 있다.
IEnumerator UpdateCatalogs() //카탈로그가 변경점이 있는지 체크
{
List<string> catalogsToUpdate = new List<string>();
AsyncOperationHandle<List<string>> checkForUpdateHandle = Addressables.CheckForCatalogUpdates();
checkForUpdateHandle.Completed += op =>
{
catalogsToUpdate.AddRange(op.Result);
};
yield return checkForUpdateHandle;
if (catalogsToUpdate.Count > 0)
{
debug.text = catalogsToUpdate.Count.ToString();
// StartCoroutine(UpdateCatalog());
}
}
catalogsToUpdate.Count의 수가 0 초과라면 업데이트 내용이 있다는 것이다.
IEnumerator UpdateCatalog() // 카탈로그 업데이트
{
AsyncOperationHandle updatehandle = Addressables.UpdateCatalogs();
yield return updatehandle;
}
업데이트가 있다면 위와같이 UpdateCatalogs()
를 사용해 업데이트를 직접 해준다.