A package is a container that stores various types of features or assets, such as:
Packages deliver a wide range of enhancements to Unity through the Package Manager. To help find and use these packages, the Package Manager window provides collections of packages that you can use together, called feature sets.
In the Editor, you can access the Package Manager window through this menu: Window > Package Manager.
The Package Manager also supports management of packages you download or import from the Unity Asset StoreA growing library of free and commercial assets created by Unity and members of the community. Offers a wide variety of assets, from textures, models and animations to whole project examples, tutorials and Editor extensions. More info
See in Glossary.
Unity provides three Package Manager interfaces: Package Manager window, Scripting API, and manifest files. The following table contains introductions to each interface, and more.
Topic | Description |
---|---|
How Unity works with packages | Get an overview of Unity’s Package Manager. |
Concepts | Learn the principles and features of the Package Manager, including concepts like versions, manifests, registries, states, sources, the package lifecycle, and dependency and resolution. |
Package Manager window | Find packages and manage them in your project, and resolve conflicts in package dependencies. The Package Manager provides a user interface that makes changes to the Project manifestEach Unity project has a project manifest, which acts as an entry point for the Package Manager. This file must be available in the <project>/Packages directory. The Package Manager uses it to configure many things, including a list of dependencies for that project, as well as any package repository to query for packages. More infoSee in Glossary directly. |
Scripting API for packages | Use the Scripting API to interact with the Package Manager using C# scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info See in Glossary. View samples to see how to query the package registry, install, embed, and remove packages, and list packages using a variety of criteria. |
Project manifest | Learn about the file that the Unity Package Manager reads so it can compute a list of packages to retrieve and load. See also Package manifestEach package has a manifest, which provides information about the package to the Package Manager. The manifest contains information such as the name of the package, its version, a description for users, dependencies on other packages (if any), and other details. More info See in Glossary. |
Inspecting packages | Use a dedicated InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info See in Glossary window to view any package manifest. Use this window to directly edit package manifests for embedded or local packages. |
Scoped Registries | Learn how to set up or access a custom registry server. Use this registry server to host and distribute (or consume) custom packages, in addition to the registry that Unity provides. |
Configuration | Learn how configure scoped registry authentication, solve network issues, customize cache locations, and more. |
Resolution and conflict | Learn how the Package Manager determines the direct and indirect dependenciesAn indirect, or transitive dependency occurs when your project requests a package which itself “depends on” another package. For example, if your project depends on the alembic@1.0.7 package which in turn depends on the timeline@1.0.0 package, then your project has an direct dependency on Alembic and an indirect dependency on Timeline. More infoSee in Glossary of a project and evaluates all the requested package versions before retrieving the best version from the registry. |
Troubleshooting | Match a symptom to a possible solution if any of your project’s packages, including the Package Manager window itself, fails to load. |
Packages
directory at the root of a Unity project. This differs from most packages which you download from a package server and are immutable. More infoDid you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.