- 어드레서블 에셋을 관리하는 단위인 그룹을 이해한다 .
- 어드레서블 빌드 스크립트에서 사용하는 변수 모음인 Profile을 이해한다 .
- 어드레서블 에셋 세팅을 이해한다
[ Addressable Group ]
1 . 그룹이란
[ 어드레서블 그룹이란 ]
- 어드레서블 에셋을 묶어서 관리하는 단위 .
- 그룹 단위로 에셋번들을 구성 할 수 있다 .
[ 에셋 관리의 고려사항들 ]
- 논리적 구성 : 에셋을 논리적 카테고리로 정리하면 구성을 쉽게 이해할 수 있다 .
- 런타임 성능 : 에셋 번들의 크기 , 개수가 많으면 병목현상이 발생 가능하다 .
- 런타임 메모리 관리 : 함께 사용하는 에셋을 한곳에 보관 , 최대 메모리 요구량을 낮춘다 .
- 플랫폼 특성 : 플랫폼의 특성 , 요구사항은 에셋을 정리할때 고려해야 한다 .
- 에셋 업데이트 빈도 : 자주 업데이트를 하는 에셋끼리 모아두는게 좋다 .
- 버전 관리 : 동일한 에셋 및 에셋 그룹에서 작업하는 사람이 많다면 버전관리 충돌이 발생 할 수 있다 .
[ 그룹화 전략 ]
프로젝트의 요구사항에 따라 적합한 전략을 정해야 한다 .
에셋을 그룹화 하는 일반적인 전략은 다음과 같다 .
- 동시 사용 : 같은 시점에 사용한다면 함께 그룹화 하는게 좋다 .이는 최대 메모리 사용량을 줄이는데 도움이 된다 .
- 논리적 엔티티 : 동일한 논리적 엔티티 (UI 레이아웃 / 텍스쳐 /사운드 등)에 속한 에셋을 함께 그룹화 한다 .
- 유형 : 같은 유형의 에셋 ( 사운드 파일 / 텍스쳐 )을 그룹화 한다 .
2 . 그룹 관리하기
[ 그룹 생성하기 ]
- Window - Asset Management - Addressable로 이동한후 Groups를 선택 , Addressable Group 창을 연다 .
- New - Packed Asset을 선택 , 그룹을 생성한다 .
- 해당 그룹에 대한 설정은 우클릭 - Inspect Group Settings를 통해 가능하다 .
[ 그룹에 에셋 추가 ]
- 프로젝트 창에서 그룹창으로 에셋을 드레그 하여 설정 가능하다 .
- 혹은 에셋이 있는 폴더를 그룹에 추가한다 . 하위 객체들은 모두 해당 그룹에 포함된다 .
[ 그룹에 에셋 제거 ]
- 제거는 그룹 우클릭 - Remove Addressable로 가능하다
3 . 그룹 설정하기
[ 그룹 설정 ]
- 유니티가 콘텐츠 빌드에서 그룹내 에셋을처리하는 방식을 설정한다 .
- 그룹 설정은 유니티가 에셋 번들을 빌드하는 위치 , 번들 압축 설정등의 프로퍼티를 제어한다 .
- 그룹의 설정은 연결된 그룹 스키마 오브젝트에서 선언된다 .
- 그룹설정은 AddressableAssetData - Asset Groups에 모여있다 .
[ 그룹 스키마 오브젝트 ]
- 그룹 스키마는 어드레서블 그룹에 대한 설정 컬렉션을 정의하는 Scriptable Object 이다 .
- 그룹에 할당된 스키마는 그룹에서 에셋을 빌드하는데 사용되는 설정을 정의한다 .
- 커스텀 빌드 스크립트와 함께 스키마를 직접 정의 가능하다 .
- 빌트인 스키마에는 다음이 포함된다 .
- Content Packing & Loading
- Content Update Restriction
- Resources and Build In Scenes : Bulit in Data
[ Content Packing & Loading ]
- 기본 빌드 스크립트에서 사용되는 기본 어드레서블 스키마 .
- 어드레서블 에셋의 빌드 및 로드에 대한 설정을 정의한다 .
- Build & Load Paths : 번들이 생성되는 경로 / 번들이 런타임에 로드되는 경로 . 해당 경로의 옵션은 Profile에 의해서 정의된다 .
- Local : 애플리케이션 설치의 일부로 배포하는 경우
- Remote : 원격 호스팅 서비스를 사용하는 경우
- Custom : 각 경로를 직접 지정할때 사용한다 .
- Advanced Options
- Asset Bundle Compression : 번들에 대한 압축 유형 . 로컬은 LZ4 / 원격은 LZMA가 일반적 .
- Include In Build : 콘텐츠 빌드에 해당 그룹의 에셋이 포함된다 .
- Force Unique Provider :
- Use Asset Bundle Cache : 원격 번들을 캐싱한다 . 즉 , 한번 다운받았다면 로컬에 캐시로 남는다 .
- Asset Bundle CRC : 번들을 로드하기 전 번들의 무결성을 검증한다 .
- Use UnityWebRequest for Local Asset Bundles : 로컬로 저장된 자산을 로드시 UnityWebRequest가 사용
- Request Timeout : 원격 번들을 다운로드하기 위한 타임아웃 간격
- Use Http Chunked Transfer : 사용 안되는 옵션 .
- Http Redirect Limit : 번들을 다운로드 할 때 허용되는 리디렉션의 수. -1은 제한 없음을 의미 .
- Retry Count : 실패한 다운로드를 다시 시도하는 횟수
- Include Address In Catalog : 카탈로그에 주소 문자열을 포함한다 .
- Include GUIDs in Catalog : Asset Reference를 포함하는 에셋에 엑세스시 체크 .
- Include Labels in Catalog : 레이블 문자열 사용시 체크 필요 . 비활성화로 카탈로그 크기를 줄인다 .
- Internal Asset Naming Path : 에셋번들에서 에셋 ID를 결정 , 번들에서 에셋 로드하는데 사용 .
- Internal Bundle Id Mode : 에셋 번들이 내부에서 식별되는 방식을 정한다 .
- Cache Clear Behavior : 설치된 애플리케이션이 캐시에서 에셋 번들을 지우는 시기를 결정함 .
- Bundle Mode : 해당 그룹의 에셋을 번들로 패킹하는 법을 설정 .
- Bundle Naming Mode : 에셋 번들의 파일 이름을 구성하는 방법을 설정
- Asset Load Mode : 에셋을 요청시 개별적으로 로드할지 , 그룹의 모든 에셋을 함께 로드할지 설정
- Asset Provider : 어드레서블이 이 그룹에서 생성된 에셋 번들에서 에셋 로드시 사용하는 Provider 클래스 . 에셋 번들에서 에셋을 제공하는 커스텀 제공자의 구현이 없다면 Asset from Bundles Provider로 설정한다 .
- Asset Bundle Provider : 어드레서블이 그룹에서 생성된 에셋 번들을 로드할때 사용하는 Provider 클래스를 정의한다 . 에셋 번들을 제공하는 커스텀 제공자 구현이 없다면 Asset Bundle Provider를 사용한다 .
- 위의 값은 원격에서 사용시 적용하면 좋을 값들이다 .
[ Content Update Restriction ]
- Check for Content Update Restrictions 툴이 그룹의 에셋을 처리하는 방식이 결정된다 .
- 활성화시 시스템은 해당 그룹의 에셋을 자주 업데이트하지 않을 것으로 예상되는 정적 콘텐츠로 취급한다 .
- 즉 , 활성화후 Update 가 이루어지면 해당 그룹은 그대로 남아있고 새로운 그룹이 생성될것이다 .
[ Resources and Bulit In Scenes : Built In Data ]
- 그룹에 표시할 빌트인 에셋 유형에 대한 설정을 정의하는 특수목적의 스키마 .
4 . 그룹을 에셋 번들로 패킹하기
[ Bundle Mode ]
사용하는 그룹 설정의 Bundle Mode는 번들을 어떻게 패킹할지 정의한다 .
- Pack Together : 그룹에 할당된 모든 에셋을 하나의 번들에 함께 패킹한다 .
- Pack Separately : 그룹에 할당된 각 어드레서블을 자체 번들에 개별적으로 패킹한다 . 전체 폴더를 어드레서블 , 해당 콘텐츠를 함께 빌드할때 유용하다 .
- Pack Together By Label : 동일한 레이블을 자체 번들로 패킹하다 .
[ 주의 사항 ]
- 씬 에셋은 항상 그룹 내 다른 어드레서블 번들과 별도로 패킹된다 . 그렇기에 씬 및 씬과 관련 없는 에셋이 혼합된 그룹은 빌드시 각각 씬 및 기타 항목을 위해 번들을 두 개 이상을 생성한다 . 즉 , 중복이 생긴다 . Build in Data - EditorSceneList에 씬에셋이 별도로 들어간다 .
- 어드레서블로 표시된 폴더의 에셋과 스프라이트 시트와 같은 복합 에셋은 Packing Separately를 선택했다면 다음의 방식으로 처리된다
- 어드레서블 폴더의 모든 에셋은 동일한 폴더에 함께 패킹된다 . ( 개별 어드레서블 표시 에셋은 제외 )
- 어드레서블 스프라이트 아틀라스의 스프라이트는 동일한 번들에 포함된다 .
[ 에셋 번들 패킹 전략 ]
번들이 너무 많은 경우
- 각 번들에는 메모리 오버헤드가 있다 . 메모리에 수천개의 번들을 한번에 로드시 메모리 사용량이 크게 증가할 것이다
- 번들 다운로드에는 동시성 제한이 있다 . 일정수 다운후 , 다음 번들이 트리거 되는 식 . 수보다는 크기 문제가 많다 .
- 번들 정보로 카탈로그 크기가 커질 수 있다 .
- 중복 에셋 가능성이 높다 .
번들이 너무 적은 경우
- UnityWebRequest는 실패한 다운로드를 다시 시작하지 않는다 . 대규모 번들이 다운로드중 , 연결이 끊어진 경우 연결이 회복되면 다운로드가 다시 시작된다 .
- 항목은 번들에서 개별적으로 로드 가능하지만 , 개별적 언로드는 불가하다 . 번들에 10개의 머테리얼이 있다면 10개를 로드후 9개를 해제하도록 설정하면 10개 모두 메모리에 있을 가능성이 높다 ,
5 . Addressable 그룹창 알아보기
[ 그룹창 ]
- Window - Asset Management - Addressables - Groups를 통해 진입
- 콘탠츠 빌드를 시작하고 , 어드레서블 시스템의 툴 및 설정에 액세스하는 중심적인 위치이다 .
[ 그룹목록 ]
- 초기 설치시Group창에는 두 개의 에셋 그룹이 표시된다 .
- Built in Data : Resources 폴더/ Build Settings 목록에 포함된 씬에 있는 에셋이 포함.즉 , 어드레서블이 안되는 그룹
- Default Local Group (Default) : 초기 어드레서블로 설정한 에셋이 추가된다 . 기본 그룹은 변경 가능하다 .
창의 각 열에는 다음의 정보가 표시된다 .
- Notifications : 빌드중에 플래그 지정되는 그룹 또는 에셋 관련 알림
- Group Name / Addressable Name : 항목의 이름 . 그룹의 경우는 변경가능한 이름 . 에셋의 경우는 어드레서블의 주소
- Icon : 에셋 유형에 따른 Unity 에셋 아이콘
- Path : 프로젝트의 소스 에셋에 대한 경로 . 즉 원래 경로이다 .
- Labels : 에셋에 할당된 레이블을 표시한다 .
[ Tools ]
- Addressable 상단 툴바는 다음의 설정을 제공한다 .
- New : 템플릿을 선택하여 새 그룹을 생성 , 혹은 스키마가 없는 Empty 상태로 둔다 . 이때 , 자체 템플릿이 있다면 별도의 옵션이 나타날 것이다 .
- Profile : 활성 프로파일을 설정 , 어드레서블 빌드 및 로드에 사용되는 경로를 지정한다 .프로파일을 선택하거나 Manage Profile로 프로파일을 관리할수 있다 .
- Tools : 다양한 어드레서블 툴을 사용 가능하다 .
- Inspect system Setting : Addressable Asset Setting를 인스펙터창에서 연다 .
- Check for Content Update Restrictions : 사전 업데이트 콘텐츠 검사를 실행한다 .
- Window : 각종 어드레서블 기능창을열어준다 . Profile/Labels/Hosting/Addressable Report창 등이 있다 .
- Group Views : 그룹을 표시하는 방법을 결정한다 . 해당 옵션들은 그룹 표시에만 영향을 미친다 .
- Show Sprite and Subobject Address : 그룹 목록에 스프라이트 및 하위 객체를 표시 , 부모 오브젝트만 표시하도록 설정
- Group Hirearchy With Dashes : 이름에 대시 - 가 포함된 그룹을 대시가 그룹 계층 구조를 나타내는것처럼 표시 . 아래 예시와 같이 보여진다 .
- Play Mode Script : 활성 플레이 모드 스크립트를 정의한다 . 에디터상에서 어떻게 에셋에 엑세스 하는지 정한다
- Build : 콘텐츠 빌드 커맨드를 선택한다 .
- New Build : 전체 콘텐츠 빌드를 실행할 빌드 스크립트를 선택한다 .기본으로 Default Build Script 사용
- Update Previous Build : 이전 빌드를 기반으로 차등 업데이트를 실행한다 .
- Clear Build Cache : 기존 빌드 아티팩트를 삭제할 커맨드를 선택한다 .
[ Play Mode Script ]
- 플레이 모드에서 게임을 실행할 때 어드레서블 시스템이 어드레서블 에셋에 엑세스 하는 방법을 결정한다 .
- Unity 에디터 외부에서 애플리케이션을 빌드 , 실행할때의 에셋로드에는 영향을 미치지 않는다 .
- Use Asset Database : 에디터 에셋 데이터베이스에서 에셋을 직접 로드 한다 .해당 옵션을 사용시 어드레서블 콘텐츠를 빌드할 필요가 없다 .실제 런타임 동작과는 다를 수 있지만, 빠른 반복 테스트에 유리하다 .
- Simulation Groups :에셋이 빌드된 것처럼 시뮬레이션하여 로드한다 .실제 런타임 로드 방식과 유사하게 동작 ,어드레서블 콘텐츠가 빌드된 후의 동작을 더 잘 반영한다 . 로컬 파일을 사용하여 시뮬레이션하여 빠른 테스트가 가능.
- Use Existing Build : 이전 콘텐츠 빌드를 통해 생성된 번들에서 에셋을 로드한다 . Default Build Script와 같은 빌드 스크립트로 전체 빌드를 실행해야 사용 가능하다 . 또한 원격 콘텐츠는 콘텐츠를 빌드하는데 사용된 프로파일의 RemoteLoadPath에서 호스팅 되어야 한다 .가장 정확한 테스트가 가능하다 .
[ 그룹 컨텍스트 메뉴 ]
- 그룹을 우클릭하면 나오는 메뉴
Remove Group(s) | 그룹을 제거하고 연결된 스크립터블 오브젝트 에셋을 삭제한다. Unity는 그룹의 모든 에셋을 비 어드레서블 에셋으로 되돌린다 . |
Simplify Addressable Names | 경로와 유사한 컴포넌트 및 확장자를 제거하여 그룹 내 에셋의 이름을 줄인다 . |
Set as Default | 그룹을 기본 그룹으로 설정한다. 그룹을 명시적으로 할당하지 않고 에셋을 어드레서블로 표시하면 Unity가 에셋을 기본 그룹에 추가한다. |
Inspect Group Settings | Unity 프로젝트 창과 인스펙터 창에서 그룹 에셋을 선택하여 설정을 볼 수 있도록 한다. |
Rename | 그룹 이름을 편집할 수 있다. |
Create New Group | 그룹 템플릿을 기반으로 새 그룹을 생성한다. |
[ 에셋 컨텍스트 메뉴 ]
- 에셋을 우클릭하면 나오는 메뉴
Move Addressables to Group | 선택한 에셋을 다른 기존 그룹으로 옮긴다. |
Move Addressables to New Group | 현재 그룹과 동일한 설정으로 새 그룹을 생성하고 선택한 에셋을 해당 그룹으로 옮긴다 |
Remove Addressables | 그룹에서 선택한 에셋을 제거하고 에셋을 비 어드레서블로 만든다. |
Simplify Addressable Names | 경로와 유사한 컴포넌트 및 확장자를 제거하여 선택한 에셋의 이름을 줄인다. |
Copy Address to CLipboard | 에셋의 할당된 주소 문자열을 시스템 클립보드로 복사한다. |
Change Address | 에셋의 이름을 편집한다. |
Create New Group | 그룹 템플릿을 기반으로 새 그룹을 생성한다. 이 경우 선택된 에셋은 이동하지 않는다. |
6 . 그룹 템플릿 직접 만들어보기
[ 그룹 템플릿 ]
- 그룹 템플릿은 유니티가 새 그룹에 대해 생성하는 스키마 오브젝트 유형을 정의한다 .
- 해당 템플릿을 이용해서 그룹을 만들 수 있다 .쉽게 말해 그룹을 찍어내는 틀 .
- 아까 봤던 Packed Asset은 기본으로 제공하는 그룹 템플릿이다 .
[ 그룹 템플릿 생성하기 ]
- Create - Addressable - Group Templates 폴더는 그룹 템플릿을 모아놓는 곳이다 .
- 해당 폴더에서 우클릭 - Addressables - Group Templates - Blank Group Template로 그룹 템플릿을 설정 할 수 있다 .
- 생성후 해당 그룹에 대한 설명을 기입 할 수 있다 .
- 이후 Add Schema로 스키마를 추가하여 설정을 구체화 할 수 있다 .
[ Profile ]
1 . Profile 소개
[ Profile ]
- 어드레서블 빌드 스크립트에서 사용하는 변수집합이 포함되어 있다 .
- 빌드 아티팩트를 저장할 위치 및 런타임시 로드할 위치와 같은 정보가 정의되어 있다 .
- 자체 빌드 스크립트에 사용될 커스텀 프로파일 변수를 추가 가능하다 .
- 프로파일은 개발 프로세스에 따라 다르게 설정 가능하다 . ex ) 개발 , 테스트 , 릴리스 등
2 . Profile 생성하기
[ Profile 생성하기 ]
- Addressable Profile - Create - Profile을 선택한다 .
- Build Path : 콘텐츠 빌드후 콘텐츠를 저장할 위치 .
- Load Path : 앱이 런타임에 빌드된 콘텐츠를 찾는 위치 .
[ 활성 Profile 설정하기 ]
- 원하는 프로파일 선택 - 우클릭 - Set Active
혹은 Addressable Asset Setting 에서 직접 설정하는 방법도 존재한다 .
3 . Profile 변수
[ Profile변수란 ]
- 어드레서블 설정을 변경하는데 사용할 수 있는 일반적인 키 / 값의 조합이다 .
- Standard : 스탠드얼론 키 / 값 페어이다 .
- Path Pairs : 특수한 명명 규칙을 사용하여 변수 집합을 연결한다 . 주로 빌드 및 로드 경로 변경에 사용 .
[ Standard변수 추가하기 ]
두가지 종류의 변수를 추가 가능하다 . 변수들은 모든 프로파일에 추가된다 .
- Variable : 단일 값을 정의하는 기본 변수 .
- Build and Load Path Variables : 두개의 경로 값 세트를 정의하는 경로 페어 . 빌드 / 로드 경로이다 .
[ 기본 경로 값 ]
빌드 및 로드 경로의 기본값은 다음과 같다 . 해당 값은 경로페어의 Bundle Location에서 고를 수 있다 .
- Built - In : 로컬 경로
- Editor Hosted : 원격 경로
- 원격 로드 경로와 빌드 경로는 변경 가능하다 . 그러나 일반적으로 로컬 경로 값은 변경 하지 않는게 좋다 .
- 어드레서블은 플레이어 빌드중 데이터를 Addressable.BuildPath에서 Streaming Assets폴더로 복사하기만 한다 .
- 즉 , 임의로 지정된 경로는 위 과정을 처리해주지 않는다 .
- 그렇기에 로컬빌드 위치를 변경한 경우 해당 위치에 생성된 로컬 빌드 아티팩트를 StreamingAssets 폴더에 직접 복사해야 한다.
[ 프로파일 변수 구문 ]
모든 프로파일 변수는 string 유형이다 . 구문 지정을 사용하여 정적 프로퍼티 나 다른 변수에서 변수 값 전부 혹은 일부를 파생 할 수 있다 . 어드레서블은 빌드중 그룹 처리시 문자열을 평가 , 그 결과를 카탈로그에 쓴다 .
- Buckets [] : 어드레서블은 빌드시 대괄호로 둘러싸인 엔트리를 평가한다 . Build Target등의 다른 프로파일 변수 또는 UnityEngile.AddressableAssets.Addressables.BuildPath와 같은 코드 변수가 될 수도 있다 .
- Braces {} : 어드레서블은 런타임에 중괄호로 둘러싸인 엔트리를 평가한다 . 런타임 클래스의 코드변수를 사용 가능하다 . ex) UnityEngile.AddressableAssets.Addressables.RuntimePath
또한 정적 필드와 프로퍼티를 사용 할 수 있다 . 이름은 정규화된 이름이어야 하며 유형은 컨텍스트에서 유효해야 한다 .
예를 들자면 {}의 경우 런타임에 평가되기에 UnityEditor 네임스페이스의 클래스를 사용하지 못한다 .
기본 프로파일 변수 설정에 사용되는 코드 변수는 다음과 같다 .
- UnityEditor.EditorUserBuildSetting.activeBuildTarget
- UnityEngine.AddressableAssets.Addressables.BuildPath
- UnityEditor.EditorUserBuildSettings.activeBuildTarget.RuntimePath
[ 프로파일 변수 예시 ]
{MyNamespace.MyClass.MyUrl}/content/[BuildTarget] 로드 경로는 trees.bundle이라는 에셋 번들을 생성하는 그룹에 설정된다 가정하자 .
빌드 중 카탈로그는 해당 번들의 로드 경로를 {MyNamespace.MyClass.MyUrl}/content/Android/trees.bundle로 등록하고 다음 에셋 번들이름을 경로에 추가한다 . 어드레거블 시스템은 런타임에 카탈로그를 처리할때 , {MyNamespace.MyClass.MyUrl}을 평가하여 http://example.com/content/Android/trees.bundle을을 생성한다 .
+ 스트리핑은 최종 애플리케잉션을 최적화 하기 위해 빌드 프로세스중에 사용되지 않는 코드 , 에셋 리소스를 제거하는 프로세스 . 이때문에만약 MyNameSpace.MyClass.MyUrl이 스크립트에서 사용되지 않는다면 스트리핑되어 정상적으로 작동 하지 않을수도 있다 .이는 Link.xml 파일로 해결 가능 . 방식은 추후 자세히 다뤄보겠음 .
4 . Addressable Profile 창
[ Profile변수란 ]
- Local.BuildPath : 애플리케이션과 함께 로컬로 설치하려는 에셋이 포함된 파일을 어디에 빌드할지 정의한다 . 기본적으로 Project Library 폴더 내부에 있다 .
- Local.LoadPath : 로컬로 설치된 에셋을 어디에 로드할지 정의한다 . StreamingAssets 폴더에 있다 . 어드레서블은 플레이어를 빌드시 StreamingAssets의 기본 위치에 빌드된 로컬 콘텐츠를 자동으로 포함하지만 , 다른 위치의 로컬 콘텐츠는 포함하지 않는다 . - 로컬 빌드 / 로드 경로는 기본값에서 바꾸지 않는게 좋다 .
- Remote.BuildPath : 원격으로 배포하려는 에셋이 포함된 파일을 어디에 빌드할지 정의한다 .
- Remote.LoadPath : 원격 콘텐츠 및 카탈로그를 다운로드할 URL을 정의한다 .
- BuildTarget : 빌드 타겟의 이름을 설정한다 . 이는 현재 플랫폼 기준으로 바뀐다 . ex) 안드로이드라면 Android. 으로 바뀔것임 .
[ Addressable Asset Setting ]
1 . Addressable Asset Setting Reference
[ Addressable Asset Setting ]
- 어드레서블 에셋의 작동 방식을 관리한다 .
- Window - Asset Management - Addressables - Settings에서 확인 가능하다 .
[ Profile ]
- Profile In Use : 어드레서블 빌드 스크립트에 사용되는 변수의 값을 결정하는 활성 프로파일을 선택한다 .
- Manage Profiles : Profile 창을 연다 .
[ Diagnotics ]
- Send Profiler Events :
- Log Runtime Exceptions : 에셋 로딩 작업에 대한 런타임 예외를 로깅 , 오류를 AsyncOpertationHandle.OperationExcaption 프로퍼티에 기록한다
어드레서블 에셋은 기본적으로 경고와 오류만 로깅한다 .상세 로깅을 활성화 하려면 Player 설정창(Edit - Project Setting - Player)에서 Other Settings - Configuration 섹션으로 이동후 ADDRESSABLES_LOG_ALL 을 Scripting Define Symbols에 추가한다 .
[ Catalog ]
- Player Version Override : 원격 카탈로그 이름을 만드는데 사용된 타임스탬프를 오버라이드 한다 . 활성시 원격 카탈로그의 이름은 Catalog_<Player Version Override>.json으로 지정된다 .
- Compress Local Catalog : 압축된 에셋 번들 파일에서 카탈로그를 빌드한다 .카탈로그의 저장소 크기를 출이지만 빌드 시간과 카탈로그 로드 시간이 늘어난다 .
- Build Remote Catalog : 원격 서버에 저장할 콘텐츠 카탈로그 사본을 만들어 원격 카탈로그 빌드가 가능하다 .
- Only update catalog manually : 런타임에 어드레서블 시스템이 초기화 될 때 업데이트된 원격 카탈로그에 대한 자동 확인을 비활성화 한다 .
[ Update a Previous Build ]
- Check for Update Issues : 업데이트의 일부로 콘텐츠 업데이트 제한을 수행할지 여부와 결과를 처리하는 방법을 택한다 .
- Content State Build Path : 기본 빌드 스크립트가 빌드하는 콘텐츠 상태 파일을 빌드할 위치를 설정한다 .
[ Downloads ]
- Custom Certificate handler : 커스텀 인증서 처리에 사용할 클래스를 설정 . 이 목록에는UnityEngine.Networking.CertificateHandler 를 확장하는 프로젝트의 모든 클래스가 포함된다
- Max Concurrent Web Requests : 동시 웹 요청의 최대수를 지정한다 . 한도를 초과한 요청은 대기열에 추가된다 . 최상의 다운로드 속도를 내려면 2 ~ 4 회 동시 다운로드를 권장한다 .
- Catalog Download Timeout : 카탈로그 파일이 다운로드 되는데 기다려야 하는 시간을 설정 . 0은 타임아웃이 없다 .
[ Build ]
어드레서블 에셋 설정 레퍼런스 | Addressables | 1.21.17
어드레서블 에셋 설정 레퍼런스 프로젝트에서 어드레서블 에셋의 작동 방식을 관리하려면 Addressable Asset Settings 인스펙터를 사용하십시오. 인스펙터를 열려면 Window > Asset Management > Addressables > Set
docs.unity3d.com
위 문서를 참고하자 .
[ Build and Play Mode Scripts ]
- 프로젝트에 사용 가능한 IDataBuilder 스크립트를 설정한다 .
- 커스텀 빌드 / 플레이 모드 스크립트를 만드는 경우 이 목록에 추가해야 사용이 가능하다 .
[ Asset Group Templates ]
- 새 그룹을 만드는데 사용 할 수 있는 템플릿 목록을 정의한다 .
- 추가시 그룹창에서 새 그룹을 만들때 해당 템플릿을 볼 수 있다 .
[ Initialization Objects ]
- 프로젝트에 사용할 초기화 오브젝트를 설정한다 .
- 초기화 오브젝트는 IObjectInitializationDataProvider 인터페이스를 구현하는 스크립터블 오브젝트이다 .
- 런타임에 데이터를 어드레서블 초기화 프로세스로 전달 가능하다 .
[ Cloud Content Delivery ]
- 실험적 CCD 기능을 활성화 할 수 있다 .
[ Addressable Preference ]
1 . Addressable Preference Reference
[ Addressable Preference]
- 어드레서블 에셋의 Preference 세팅을 결정한다 . 각 값을 하나씩 살펴보자 .
[ Debug Build Layout ]
- 해당 값 활성화시 빌드 시스템이 빌드 레이아웃 보고서를 생성한다 .
- 빌드 레이아웃 보고서는 해당값 활성화시 빌드후 Library/com.unity.addressables/buildlayout 에 생성된다 .
- 빌드에 대한 자세한 내용과 통계 정보를 알 수 있다 .
- 활성화시 빌드 시간이 증가되기에 비활성화 한다 . 디버그시 사용하면 좋은 옵션이다 .
[ Player Build Settings ]
- 해당 옵션은 유니티가 플레이어 빌드를 진행하면 어드레서블 빌드를 함께 생성하는지를 결정한다 .
- 빌드를 한꺼번에 하면 편리할 수 있지만 , 어드레서블 에셋의 수정이 없는데도 어드레서블 콘텐츠가 빌드되기에 비효율적이다 .
- 또한 빌드시간 역시 늘어난다 .
- Build Addressables content on Player Build: 플레이어를 빌드할 때 항상 어드레서블 콘텐츠를 빌드한다 .
- Do not Build Addressables content on Player Build: 플레이어를 빌드할 때 어드레서블 콘텐츠를 빌드하지 않는다 . 만약 어드레서블 콘텐츠가 수정되었다면 수동으로 직접 빌드해야 한다 .
위의 전역값은 어드레서블 세팅에 정의된 값으로 오버라이드 될 수 있다 .
- Use global Settings가 되어있는경우 Preference의 값을 따른다 .
- 그 외의 값은 Prefererence의 값보다 우선시되게 된다 .
출처
어드레서블 에셋 설정 레퍼런스 | Addressables | 1.21.17
어드레서블 에셋 설정 레퍼런스 프로젝트에서 어드레서블 에셋의 작동 방식을 관리하려면 Addressable Asset Settings 인스펙터를 사용하십시오. 인스펙터를 열려면 Window > Asset Management > Addressables > Set
docs.unity3d.com
'유니티 > Addressable' 카테고리의 다른 글
[ Addressable ] 06 . 콘텐츠 원격으로 배포하기 (0) | 2024.08.01 |
---|---|
[ Addressable ] 05 . Addressable 콘텐츠 업데이트 하기 (2) | 2024.07.19 |
[ Addressable ] 04 . Addressable 콘텐츠 빌드하기 (0) | 2024.07.18 |
[ Addressable ] 02 . Addressable 로 프로젝트 전환하기 (0) | 2024.07.10 |
[ Addressable ] 01 . Addressable이란 (0) | 2024.07.09 |