프로파일 변수 개요
프로파일 변수는 다양한 개발 상황에 맞게 어드레서블 설정을 변경하는 데 사용할 수 있는 일반적인 키/값 조합입니다.
프로파일 변수에는 두 가지 유형이 있습니다.
- Standard: 스탠드얼론 키/값 페어입니다.
- Path pairs: 특수한 명명 규칙을 사용하여 변수 집합을 연결합니다.
경로 페어는 일반적으로 개발 상황에 따라 서로 다른 빌드 및 로드 경로를 변경하는 데 사용됩니다. 예를 들면 경로 페어를 사용하여 다양한 플랫폼에 대한 어드레서블 콘텐츠의 빌드 및 로드 경로를 변경할 수 있습니다.
새 표준 변수 추가
프로파일에 두 가지 종류의 변수를 추가할 수 있습니다.
- Variable: 단일 값을 정의하는 기본 변수입니다.
- Build and Load Path Variable: 두 개의 경로 값 세트를 정의하는 경로 페어입니다. 하나의 값은 빌드 경로, 다른 값은 로드 경로에 사용됩니다.
새 프로파일 변수를 추가하려면 Addressables Profiles 창을 열고 Create 메뉴를 열어 Variable 또는 Build Load Path Variable 중 하나를 선택합니다. 새 변수에 이름과 값을 할당하고 Save를 선택합니다. 그러면 어드레서블이 모든 프로파일에 새 변수를 추가합니다. 변수 이름을 오른쪽 클릭하여 이름을 변경하거나 변수를 삭제합니다.
기본 변수를 경로 변수의 컴포넌트로 사용하고(예: BuildTarget) 자체 빌드 스크립트에 사용할 수 있습니다. 경로 페어 변수를 사용하여 그룹 및 원격 카탈로그의 Build & Local Paths 설정을 조정합니다.
경로 페어
경로 페어는 일치하는 BuildPath
및 LoadPath
변수 집합을 정의합니다. 경로 페어를 만들 때 페어 이름을 사용하여 그룹 또는 원격 카탈로그의 경로 설정을 하나의 단위로 할당할 수 있습니다.
경로 페어를 만들려면 Create로 이동하여 Build Load Path Variables를 선택합니다. 경로 페어에 접두사 이름을 할당하고 개별 필드에 경로 문자열을 할당합니다.
새 경로 페어
새 경로 페어는 초기 값과 함께 Bundle Location 프로퍼티에 대한 Custom 설정을 사용합니다. 필요한 경우 다른 Bundle Location으로 변경할 수 있습니다.
[!팁] Profile 창에서 이름을 변경하여 빌드 및 로드 경로의 일반 변수 두 개를 경로 페어로 전환할 수 있습니다. 하나를
VariableName.BuildPath
로, 다른 하나를VariableName.LoadPath
로 설정합니다.
두 개의 프로파일과 두 개의 경로 페어를 보여 주는 Addressables Profiles 창
기본 경로 값
빌드 및 로드 경로의 기본값은 다음과 같습니다.
- 로컬 빌드 경로:
[UnityEditor.EditorUserBuildSettings.activeBuildTarget]
- 로컬 로드 경로:
[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]
- 원격 빌드 경로:
ServerData/[BuildTarget]
- 원격 로드 경로:
http://localhost/[BuildTarget]
일반적으로 로컬 경로 값을 변경할 필요는 없습니다. Unity 빌드 시스템은 에셋 번들 및 기타 파일이 기본 위치에 존재할 것으로 예상합니다. 로컬 경로를 변경하는 경우 플레이어를 빌드하기 전에 빌드 경로에서 로드 경로로 파일을 복사해야 합니다. 로드 경로는 항상 Unity StreamingAssets
폴더에 있어야 합니다.
콘텐츠를 원격으로 배포하는 경우 원격 콘텐츠를 호스팅하는 URL을 반영하도록 원격 로드 경로를 변경해야 합니다. 원격 빌드 경로는 편리한 위치로 설정할 수 있습니다. 빌드 시스템은 기본값에 의존하지 않습니다.
프로파일 변수 구문
모든 프로파일 변수는 string
유형입니다. 고정 경로 또는 값을 할당할 수 있습니다. 또한 두 가지 구문 지정을 사용하여 정적 프로퍼티나 다른 변수에서 변수 값의 전부 또는 일부를 파생할 수 있습니다.
- Brackets [ ]: 어드레서블은 빌드 시 대괄호로 둘러싸인 엔트리를 평가합니다. 엔트리는
BuildTarget
등의 다른 프로파일 변수 또는UnityEditor.EditorUserBuildSettings.activeBuildTarget
과 같은 코드 변수가 될 수 있습니다. 어드레서블은 빌드 중에 그룹을 처리할 때 대괄호 안의 문자열을 평가하고 그 결과를 카탈로그에 씁니다. - Braces { }: 어드레서블은 런타임에 중괄호로 둘러싸인 엔트리를 평가합니다. 런타임 클래스의 코드 변수를 사용할 수 있습니다(예:
{UnityEngine.AddressableAssets.Addressables.RuntimePath}
).
대괄호 또는 중괄호 안에 정적 필드와 프로퍼티를 사용할 수 있습니다. 이름은 정규화된 이름이어야 하며 유형은 컨텍스트에서 유효해야 합니다. 예를 들어 UnityEditor
네임스페이스의 클래스는 런타임에 사용할 수 없습니다.
기본 프로파일 변수 설정에 사용되는 코드 변수는 다음과 같습니다.
[UnityEditor.EditorUserBuildSettings.activeBuildTarget]
[UnityEngine.AddressableAssets.Addressables.BuildPath]
[UnityEngine.AddressableAssets.Addressables.RuntimePath]
예를 들어, {MyNamespace.MyClass.MyURL}/content/[BuildTarget]
로드 경로는 trees.bundle
이라는 에셋 번들을 생성하는 그룹에 설정됩니다. 빌드 중 카탈로그는 해당 번들의 로드 경로를 {MyNamespace.MyClass.MyURL}/content/Android/trees.bundle
로 등록하고, [BuildTarget]
을 Android
로 평가한 다음 에셋 번들 이름을 경로에 추가합니다. 어드레서블 시스템은 런타임에 카탈로그를 처리할 때 {MyNamespace.MyClass.MyURL}
을 평가하여 최종 로드 경로인 http://example.com/content/Android/trees.bundle
을 생성합니다.
[!참고] 프로파일 문자열에서 런타임 변수를 참조해도 코드에서 동일한 변수를 참조하는 다른 항목이 없는 경우, 빌드 최적화 시 Unity가 애플리케이션의 런타임 라이브러리에서 해당 변수를 스트리핑하는 것을 막지는 못합니다.