Version: 2019.4
Unity의 패키지 관리자
전역 캐시

개념

이 섹션에서는 Unity 패키지 관리자 기능에 대한 다양한 개념들을 설명합니다.

버전

각 패키지마다 여러 버전을 이용할 수 있으며, 라이프사이클을 따라 해당 패키지의 변경 사항을 표시합니다. 개발자는 패키지를 업데이트할 때마다 새로운 버전 번호를 부여합니다. 변경된 패키지 버전을 확인하면 시맨틱 버전 지정 규칙에 따라 업데이트 내용이 대규모 변경(메이저)인지, 이전 버전과의 호환성 지원(마이너)인지, 아니면 단순한 버그 수정(패치)인지 파악할 수 있습니다.

특정 패키지에 이용 가능한 버전 리스트를 보려면 특정 버전 찾기를 참조하십시오.

매니페스트

매니페스트 파일에는 다음의 두 가지 타입이 있습니다.

  • 프로젝트 매니페스트 (manifest.json) 여기에는 패키지 관리자가 올바른 패키지를 찾고 로드하기 위한 정보(예: 종속성으로 선언된 버전 및 패키지 리스트)가 저장됩니다.
  • 패키지 매니페스트 (package.json). 여기에는 특정 패키지에 관한 정보, 그리고 해당 패키지에 필요한 버전 및 패키지 리스트가 저장됩니다.

두 파일 모두 JSON(JavaScript Object Notation) 구문을 사용합니다.

레지스트리

Unity maintains a central registry of official packages that are available for distribution. A package registry stores package contents and information (metadata) on each package version. By default, all projects use the official Unity package registry, but you can add additional registries to store and distribute private packages or stage packages in development.

패키지 관리

Unity 패키지 관리자는 전체 패키지 시스템을 관리하는 툴입니다. 주로 수행하는 작업은 다음과 같습니다.

  • Unity 레지스트리 및 추가 지정 레지스트리와 소통합니다.
  • 프로젝트 매니페스트를 읽은 후 패키지 콘텐츠 및 메타데이터를 페치합니다.
  • It installs, upgrades, and uninstalls packages, whether they are dependencies of the project or one of the installed packages.
  • Unity 빌트인 패키지를 활성화하거나 비활성화합니다.
  • 모든 패키지의 각 버전에 대한 정보를 표시합니다.
  • 프로젝트와 해당 패키지에 두 개 이상의 패키지 버전이 필요한 경우 충돌을 해결합니다.

The Unity Package Manager installs samples, tools, and assets on a per-project basis, rather than installing them across all projects for a specific machine or device. It uses a global cache to store downloaded package metadata and contents. Once installed, Unity treats package assets just like any other asset in the project, except that these assets are stored inside the package folder and are immutable. You can only permanently change content from Local and Embedded package sources.

Package states and lifecycle

After developing a package to the point where it is ready for Unity users to test it and provide feedback, a package enters the Preview state. Packages in this state usually appear in the Unity Editor with the preview label and often use preview as part of their version.

Unity’s release management only grants a package the verified status after it passes several testing stages and validation procedures, which also include checks for appropriate documentation, changelog, and license files. Packages in this state may appear in the Unity Editor with the 2019.3 verified label and never use preview as part of their version.

If the package developer introduces changing or breaking changes to a package (either by introducing a change that breaks an API or affects its usage), that package returns to the Preview state and the Package Manager does not suggest the new preview package as a possible update for the verified version.

Unity 패키지 관리자의 패키지 라이프사이클
Unity 패키지 관리자의 패키지 라이프사이클

These states indicate where the package is in the development cycle:

상태 설명
In Development 패키지 개발자가 패키지를 만듭니다. 일반적으로 개발자의 프로젝트에 패키지를 포함시키는 단계에 해당합니다.
Preview When the package is ready for testing, the Unity package developer makes sure there is some basic test coverage, and that the package passes testing with the package validation suite. The package also needs at least preliminary documentation, an updated changelog, and licensing before the Unity package developer can apply to publish the package on Unity’s official registry.

At this point, the package is available for testing, so that any eligible Unity user can provide the developer with feedback. Most packages are available to any Unity users, although a few packages are limited to Unity IDs with specific entitlements.

Preview packages can go through many changes before they are ready to be verified for a specific version of Unity. At some point in the future, they might pass the verification requirements; however, they might also be deprecated instead. Because there is no guarantee for future support, you should not use preview packages in production. For a list of preview packages available for this version, see Preview packages.
Verified 이 패키지는 엄격한 테스트를 거쳤으며, 이 Unity 버전 그리고 동일한 버전에 대해 검증된 다른 모든 패키지에서 안전하게 작동하는 것으로 확인되었습니다. 이 상태는 Unity가 내부적으로 개발하는 패키지에만 해당됩니다. 타사 프로세스에 대한 내용은 해당 패키지 개발자에게 문의하십시오.

패키지가 Unity 버전에 대해 검증되면 Unity는 Unity의 해당 버전 기간 동안, 장기 지원 기간에 걸쳐 그러한 검증된 패키지에 대한 지원을 보장하며, 메이저 또는 마이너 업데이트(즉 API를 변경하는 작업)를 허용하지 않습니다. 새로운 Unity 버전이 나올 때마다 각 검증된 패키지는 검증 프로세스를 다시 통과해야만 패키지 관리자가 검증된 것으로 간주합니다.

이 Unity 버전에 대해 검증된 패키지 리스트는 검증된 패키지를 참조하십시오.

참고: 일부 패키지는 검증된 또는 프리뷰 패키지가 아닙니다. 이는 대개의 경우 패키지가 이전 버전의 Unity에서 검증되었지만, 현재 버전에 대한 검증 프로세스가 아직 완료되지 않았기 때문입니다. 일부 패키지의 경우 사용해도 안전한 것으로 간주되어 Unity 패키지 관리자 레지스트리에 퍼블리시되었지만, 실제로는 검증되지 않았습니다. 이 두 가지 경우 모두 이러한 패키지를 프로덕션에 안심하고 사용할 수 있습니다.

The Package Manager window displays a tag that corresponds to some of these states.

패키지 소스

소스는 패키지의 출처를 설명합니다.

소스 설명
레지스트리 The Unity Package Manager downloads most packages from a package registry into a global cache on your computer as you request them. These packages are immutable, so you can use them in your project, but you cannot modify them or change their package manifests.
Built-in 이 패키지를 이용하면 터레인 물리, 애니메이션 등과 같은 Unity 기능을 활성화하거나 비활성화할 수 있습니다. 이 패키지는 변경이 불가능합니다. 자세한 내용은 빌트인 패키지를 참조하십시오.
Embedded 프로젝트 폴더에 저장된 패키지는 모두 내장 패키지입니다. 이 소스는 in development 단계에 해당합니다. 이는 일반적으로 패키지 개발을 시작할 때 새로운 패키지에 필요한 모든 스크립트, 라이브러리, 샘플 및 기타 에셋을 프로젝트 폴더의 하위 폴더에 저장하기 때문입니다.
Local 컴퓨터의 모든 폴더에서 패키지를 설치할 수 있습니다(예: 개발 저장소를 로컬로 클로닝한 경우).
Local tarball 컴퓨터의 타르볼 파일에서 패키지를 설치할 수 있습니다. 패키지 관리자는 타르볼에서 패키지를 추출하여 캐시에 저장합니다. 하지만 이 패키지는 Local 폴더에서 설치하는 것과 달리 변경이 불가능합니다.
Git 패키지 관리자는 레지스트리 서버가 아니라 Git 저장소에서 직접 Git 패키지를 설치합니다.

패키지에 대한 패키지 매니페스트를 편집하려면 패키지 검사를 참조하십시오.

Package Manager 창에는 이러한 일부 소스에 해당하는 태그가 표시됩니다. 자세한 내용은 태그를 참조하십시오.

Unity의 패키지 관리자
전역 캐시