본문 바로가기
Unity/어드레서블 에셋 시스템

어드레서블 에셋 시스템 - 개념: 어드레서블 윈도우, 시스템 동작 플로우

by PlaneK 2020. 6. 16.

어드레서블 윈도우

어드레서블을 PackageManager로부터 설치하면 위와 같이 컨텍스트 메뉴에서 창을 활성화 할 수 있다.

1.10.0 버전

프로필

프로필은 Path에 대한 정보를 저장하는 데이터 셋이다. Path에 대한 프리셋 역할을 한다.

BuildTarget
에셋번들의 파일명. 에셋번들 파일의 이름은 '에셋그룹 명 + hash값'으로 구성된다. 
hash값으로 변경을 감지하고 버전을 체크한다.
디폴트 : [UnityEditor.EditorUserBuildSettings.activeBuildTarget]

LocalBuildPath

에셋 그룹이 번들 파일로 빌드된 후 저장되는 경로이다.
디폴트 : [UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]

LocalLoadPath

로드 할 에셋 번들의 경로이다. "에디터 상에서는 LocalBuildPath에서 로드할 것이다."
디폴트 : {UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]

RemoteBuildPath

경로를 지정하지 않으면 ServerData 폴더가 생성되고 그 경로에 해당 에셋 그룹이 빌드된다.
개발자에 의해 해당 번들 파일은 CDN으로 옮겨진다.
디폴트 : ServerData/[BuildTarget]

RemoteLocalPath
에셋 번들의 CDN 주소.
디폴트 : http://localhost/[BuildTarget]

 에셋 그룹별로 스키마를 통해 프로필과 Build Path, Load Path를 변경할 수 있다.

Play mode Script

에디터에서 Play를 눌렀을 때 어드레서블을 사용하는 방식을 선택한다.

ㆍUse Asset Database (faster) : 빌드된 에셋 번들 파일을 사용하지 않고 어드레서블 에셋을 사용한다.
ㆍSimulate Groups (advanced) : 가상으로 에셋 그룹을 번들 파일로 빌드해서 해당 파일을 사용한다.
ㆍUse Existing Build (requires built groups) : 빌드된 에셋 번들 파일을 사용한다.


Build

'Use Existing Build (requires built groups)' 메뉴를 사용하려면 에셋 그룹들을 Build해야 한다.

에셋 그룹들은 'DataBuilders'를 통해 번들 파일로 생성된다.

Default Build Script의 구성을 어드레서블 세팅에서 변경할 수 있다.

레이블

레이블을 통해서 에셋 그룹 내 에셋들을 분별할 수 있다.

 

시스템 동작 플로우

어드레서블 에셋 시스템이 어떤 방식으로 동작하는지 정리해보자.

[Unite Seoul 2019] 양진석 - 효과적인 에셋 관리를 위한 어드레서블 에셋 시스템 소개
https://youtu.be/yoBzTpJYN44

에셋 번들 파일 경로의 상위 폴더에는 catalog.json 파일이 있다.

catalog는 에셋의 키값과 ID값, 리소스 타입, 프로바이더 등을 제공한다.

catalog를 통해 어드레스로 매핑된 에셋 번들을 찾아 낸다.

어드레서블이 에셋번들을 찾아내면 리소스 매니저가 해당 리소스를 어떻게 로드할지 판단하고 로드된 개체를 반환한다. 위 플로우는 '비동기 처리'된다.

대략적 플로우

Inspector뷰 우측 상단에서 Debug 메뉴가 있다. 

디버그 모드를 켜면 각 어드레서블의 각 필드 값을 볼 수 있는데 GUID의 값도 보인다.

Catalog로부터 이 GUID 값을 매칭시켜 키 값에 대응하는 에셋번들 파일명을 얻은 뒤,

해당 에셋번들 파일의 경로를 얻어낸다.

 

댓글