Unity가 프로젝트를 로드할 때 Unity 패키지 관리자는 로드할 패키지 리스트를 계산하기 위해 프로젝트 매니페스트를 읽습니다. 사용자가 Package Manager 창을 통해 패키지를 설치하거나 제거하면 패키지 관리자는 그러한 변경 사항을 프로젝트 매니페스트 파일에 저장합니다. 프로젝트 매니페스트 파일은 dependencies 오브젝트를 통해 패키지 리스트를 관리합니다.
또한 프로젝트 매니페스트는 패키지 관리자의 설정 파일 역할을 하며, 하나 이상의 패키지 레지스트리 위치를 저장합니다. Git 패키지의 경우에는 커밋 해시와 리비전 숫자를 정의하는 lock 오브젝트를 제공하여 패키지 관리자가 항상 동일한 종속성을 정확히 설치하도록 보장합니다.
Unity 프로젝트의 루트 폴더 아래에 있는 Packages
폴더에서 manifest.json
이라는 이름의 프로젝트 매니페스트 파일을 찾을 수 있습니다. 패키지 매니페스트 파일과 마찬가지로 프로젝트 매니페스트 파일은 JSON(JavaScript Object Notation) 구문을 사용합니다.
모든 속성은 선택 사항입니다. 하지만 프로젝트 매니페스트 파일에 아무런 값도 없으면 Package Manager 창이 로드되지 않고 패키지 관리자가 아무 패키지도 로드하지 않습니다.
팁: 언제든지 메인 Unity 도움말 메뉴에서 Reset packages to defaults를 선택하여 레지스트리 관련 문제를 해결할 수 있습니다. 하지만 이 작업은 프로젝트의 패키지에 적용한 모든 변경 사항을 재설정하므로 최후 수단으로만 사용해야 합니다.
Key | JSON 타입 | 설명 |
---|---|---|
dependencies | 오브젝트 | 프로젝트에서 이용 가능한 패키지 리스트입니다. 매니페스트의 이 엔트리는 맵 구조를 사용하여 프로젝트에 필요한 버전과 연결된 패키지 이름을 나열합니다. 모든 지원되는 체계의 자세한 개요는 종속성 섹션을 참조하십시오. 참고: 이 리스트에는 간접 종속성(다른 패키지에서 필요로 하는 패키지)이 포함되지 않습니다. |
registry | String | 메인 Unity 패키지 관리자 레지스트리의 URL입니다. 이 URL은 기본 레지스트리 URL(https://packages.unity.com )을 오버라이드합니다. 참고: 자체 레지스트리로 기본 레지스트리를 오버라이드하면 공식 Unity 패키지에 대한 액세스 권한을 잃습니다. 자체 프라이빗 패키지 컬렉션으로 Unity 패키지 라이브러리를 증강하고 싶은 경우에는 scopedRegistries 속성을 설정하여 범위 지정 레지스트리를 사용하십시오. |
scopedRegistries | 오브젝트 배열 | 기본 레지스트리 외에 커스텀 레지스트리를 지정하여 자체 패키지를 호스트할 수 있습니다. 자세한 내용은 범위 지정 레지스트리 섹션을 참조하십시오. |
lock | 오브젝트 | 커밋 해시와 선택된 리비전이 포함된 Git 패키지 해상도 정보를 설명합니다. 패키지 관리자는 이 속성을 자동으로 업데이트하기 때문에 언제든지 동일한 종속성을 정확히 설치할 수 있습니다. 이 속성은 Git 패키지용으로 예약되어 있지만, 향후 다른 기능도 확실한 패키지 버전 해상도를 보장하기 위해 이 속성을 사용하게 될 수도 있습니다. |
testables | 문자열 배열 | Unity 테스트 프레임워크에 포함할 패키지 이름을 나열합니다. 자세한 내용은 패키지에 테스트 추가를 참조하십시오. |
{
"registry": "https://my.registry.com",
"scopedRegistries": [{
"name": "My internal registry",
"url": "https://my.internal.registry.com",
"scopes": [
"com.company"
]
}],
"dependencies": {
"com.unity.package-1": "1.0.0",
"com.unity.package-2": "2.0.0",
"com.unity.package-3": "3.0.0",
"com.unity.my-local-package": "file:/path/to/com.unity.my-local-package",
"com.unity.my-git-package": "https://my.repository/my-package.git#v1.2.3"
},
"lock": {
"com.unity.my-git-package": {
"hash": "9e72f9d5a6a3dadc38d813d8399e1b0e86781a49",
"revision": "v1.2.3"
}
},
"testables": [ "com.unity.package-1", "com.unity.package-2" ]
}