Addressable 에셋 경로가 다름

반응형

# 어드레서블 불러오는 에셋 이름이 다름

 

## 문제 확인

로컬 전용 번들 파일을 불러올 때, 서로 다른 이름을 불러왔음

아래는 불러오려고 하는데 경로상 존재하지 않는 이름

Failed to read data for the AssetBundle 'commonshared_assets_all_f24e66a9e99becca18d9cecdbc2fdd5b.bundle'.

아래는 실제 경로상 존재하는 이름

commonshared__1190970ae1abf65121c1542f6b80fc1d

 

## 원인

로컬 번들 파일이기에, 로컬 경로상 있는 hash 값을 우선해서 사용할 줄 알았는데, 캐쉬된 번들 hash 파일 이름을 우선하여 찾기에 발생했다.

유니티 어드레서블은 Build Remote Catalog : Remote 가 활성화 되어 있을 경우에는 첫 시작 시 자동으로 서버에 존재하는 hash 정보를 받아왔음

C:\Users\<사용자 이름>\AppData\LocalLow\<회사 이름>\<프로젝트 이름>


실제로 com.~~ 경로에 네트워크가 연결될 경우에는 현재 프로젝트와 서버에 있는 해쉬 값이 다를 경우 서버에서 해쉬를 우선적으로 해쉬 정보를 저장

 

 

## 해결 방안

### 번들 이름에 대한 변경이 되지 않도록 하기

 

### 로컬 번들의 겨우 고정된 자산으로 사용하기

 

### Bundle Naming Mode 수정

아래 옵션을 변경 해서 참조되는 번들의 이름이 항상 고정되도록 변경

fileNameHash를 통해 그룹명만 사용하도록 지정할 수 있음

 

 

## 문제 예방

### 타이틀 씬 에셋 같은 경우에는 고정된 에셋으로 빌드에 함께 포함

빌드에 종속되는 문제가 있지만 번들을 불러오지 못하는 문제는 예방이 가능함.

 

### 반드시 서버에 Catalog 데이터를 올려서 최신화할 것

 

### 로컬 번들의 이름은 고정하여 사용

로컬 번들에 한해서는 참조에 대한 오류가 없도록 이름을 고정하여 사용

 

반응형