콘텐츠 업데이트 빌드 설정
콘텐츠 업데이트를 퍼블리시하려면 애플리케이션에서 이미 원격 카탈로그를 사용하고 있으며 액세스 가능한 서버에서 원격 콘텐츠를 호스팅해야 합니다. 콘텐츠 호스팅 및 배포 설정에 대한 자세한 내용은 원격 배포 활성화를 참조하십시오.
각 그룹의 Update Restriction 을 설정하는 방법도 고려해야 합니다. 이러한 설정은 Check for Content Update Restriction 툴이 그룹에서 변경된 콘텐츠를 처리하는 방식을 결정합니다. 콘텐츠 업데이트의 다운로드 크기를 최소화할 수 있는 적절한 설정을 선택하십시오.
자세한 내용은 Group Update Restriction 설정을 참조하십시오.
Update a Previous Build 설정
Addressable Asset Settings에는 이전 빌드를 업데이트하기 위한 섹션도 포함되어 있습니다.
설정 | 설명 |
---|---|
Check For Update Issues | Check For Content Update Restrictions 검사를 자동으로 실행할지 여부와 감지된 문제를 처리하는 방법을 시스템에 알립니다. |
Content State Build Path | 이 위치는 두 가지 목적으로 사용됩니다. - 새로운 콘텐츠 빌드가 이전 상태 파일을 저장하는 위치를 표시합니다. - Update a Previous Build가 이전 상태 파일을 자동으로 가져오려고 시도하는 위치입니다. |
Content State Build Path 는 서버에서 이전 상태 파일을 공유하려는 경우 원격 위치가 될 수 있습니다. 시스템은 이전 상태 파일의 원격 위치를 다르게 처리합니다.
- 새 콘텐츠 빌드는 이전 상태 파일을
ContentUpdateScript.PreviousContentStateFileCachePath
에 저장하며, 이는 기본적으로Library/com.unity.addressables/AddressablesBinFileDownload/
입니다. - Update a Previous Build는 원격 이전 상태 파일을
ContentUpdateScript.PreviousContentStateFileCachePath
에 다운로드하고 일반적인 방식으로 파일을 읽습니다. 파일이 원격 위치에 존재하지 않지만 캐시 경로에 파일이 이미 있는 경우 시스템은 로컬 파일을 로드합니다.
Group Update Restriction 설정
프로젝트의 각 그룹에 대해 Update Restriction 스키마는 다음과 같이 그룹 및 해당 에셋이 콘텐츠 업데이트에서 처리되는 방식을 결정합니다.
- Prevent Updates: 이 설정을 토글하면 시스템은 해당 그룹의 에셋을 자주 업데이트하지 않을 것으로 예상되는 정적 콘텐츠로 취급합니다. 모든 로컬 콘텐츠는 이 설정을 사용해야 합니다.
그룹의 콘텐츠 유형과 애플리케이션의 전체 플레이어 빌드 사이에 해당 콘텐츠를 업데이트하려는 빈도에 따라 설정을 선택합니다.
어떤 설정을 선택하든 상관없이 그룹 내 콘텐츠를 변경할 수 있습니다. 차이점은 Check for Content Update Restrictions 및 Update Previous Build 툴이 그룹의 에셋을 처리하는 방식과 설치된 애플리케이션이 업데이트된 콘텐츠에 액세스하는 방식입니다.
[!중요] 전체 빌드를 수행하지 않는 한 그룹의 Update Restriction 설정을 변경하지 마십시오. 콘텐츠 업데이트 전에 그룹 설정을 변경하면 어드레서블이 업데이트 빌드에 필요한 올바른 변경 사항을 생성할 수 없습니다.
Prevent Updates 활성화(정적 콘텐츠)
Prevent Updates 를 활성화하면 Check for Content Update Restrictions 툴이 원격 경로에서 빌드 및 로드하도록 설정된 새 그룹으로 변경된 에셋을 옮깁니다. 이는 Update Previous Build와 자동으로 통합할 수 있는 동일한 검사입니다. 툴을 수동으로 실행하든 Update a Previous Build 가 자동으로 검사를 처리하도록 하든 관계없이, 콘텐츠 업데이트는 변경된 에셋이 새 번들에서 액세스되지만 변경되지 않은 에셋은 여전히 원래 번들을 통해 액세스되도록 원격 카탈로그를 설정합니다.
[!참고] 업데이트 빌드는 변경된 에셋이 없는 원본 번들 버전을 생성하지만, 설치된 애플리케이션은 로컬로 캐시된 버전이 모종의 이유로 삭제되지 않는 한 이러한 번들을 다운로드하지 않습니다.
업데이트가 자주 발생하지 않을 것으로 예상되는 콘텐츠는 Prevent Updates 가 활성화된 그룹으로 설정된 그룹에 정리하십시오. 일반적으로 사용자는 이러한 번들을 두 번 이상 다운로드할 필요가 없으므로, 이러한 그룹을 설정하면 더 적은 수의 더 큰 번들을 안전하게 생성할 수 있습니다.
로컬 로드 경로에서 로드하려는 모든 그룹을 Prevent Updates 로 설정합니다. 마찬가지로 해당 그룹에서 에셋을 변경하는 경우 사용자가 변경된 에셋만 다운로드해도 되도록, 대규모 원격 번들을 생성하는 모든 그룹을 Prevent Updates 로 설정하십시오.
Prevent Updates 비활성화(동적 콘텐츠)
그룹에 Prevent Updates 가 없는 경우 그룹 내 에셋이 변경되면 콘텐츠 업데이트가 전체 번들을 다시 빌드합니다. Update a Previous Build 스크립트는 설치된 애플리케이션이 새 번들에서 그룹의 모든 에셋을 로드하도록 카탈로그를 설정합니다.
자주 변경할 것으로 예상되는 콘텐츠는 Prevent Updates 를 비활성화한 그룹으로 정리합니다. 단일 에셋이 변경되면 이러한 그룹의 모든 에셋이 다시 퍼블리시되므로, 더 적은 수의 에셋을 포함하는 더 작은 번들을 생성하도록 이러한 그룹을 설정해야 합니다.
Unique Bundle IDs 설정
애플리케이션 시작 시가 아니라 즉시 콘텐츠를 업데이트하려면 Unique Bundle IDs 설정을 사용합니다. 이 옵션을 활성화하면 애플리케이션 세션 도중에 업데이트된 에셋 번들을 더 쉽게 로드할 수 있지만, 일반적으로 빌드 속도가 느려지고 업데이트 용량이 커집니다.
Unique Bundle IDs 옵션을 활성화하면 원래 번들이 메모리에 남아 있는 동안 에셋 번들의 변경된 버전을 로드할 수 있습니다. 고유한 내부 ID로 에셋 번들을 빌드하면 에셋 번들 ID의 충돌 없이 런타임에 콘텐츠를 쉽게 업데이트할 수 있습니다.
하지만 이 기능을 활성화하면 변경된 에셋을 참조하는 에셋이 포함된 모든 에셋 번들도 다시 빌드해야 합니다. 콘텐츠 업데이트를 위해 더 많은 번들을 업데이트해야 하며 모든 빌드 속도가 느려집니다.
일반적으로는 어드레서블 시스템이 이미 초기화되고 에셋 로딩을 시작한 후에 콘텐츠 카탈로그를 업데이트할 때만 고유한 번들 ID를 사용하면 됩니다.
다음 방법 중 하나를 사용하여 에셋 번들 로딩 충돌 및 고유 ID 활성화를 피할 수 있습니다.
- 어드레서블 초기화의 일부로 콘텐츠 카탈로그를 업데이트합니다. 기본적으로 Addressable Asset 설정에서 Only update catalogs manually 옵션을 활성화하지 않는 한 어드레서블은 초기화 시 새 카탈로그를 확인합니다. 이 방법을 선택하면 세션 도중에는 애플리케이션 콘텐츠를 업데이트할 수 없습니다.
- 콘텐츠 카탈로그를 업데이트하기 전에 모든 원격 에셋 번들을 언로드합니다. 모든 원격 번들과 에셋을 언로드하면 번들 이름 충돌을 방지할 수 있지만, 새 콘텐츠가 로드되기를 기다리는 동안 사용자 세션이 중단될 수 있습니다.