The Unity Package Manager is the official package management system for Unity. It does the following:
You can use the Package Manager to define Project dependencies, resolve package dependencies, download and add packages as needed, and integrate content in your Projects.
NOTE: For general information on what a package is and how the Unity Package Manager works, see PackagesA package is a collection of Assets to be shared and re-used in Unity. There are two types of packages supported in Unity: Asset packages and packages available through the Unity Package Manager (UPM). Packages available through the Unity Package Manager are a fundamental method of delivering Unity functionality. More info
See in Glossary.
Packages can contain the following:
In addition, each package contains a Package manifestEach package has a package 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 file that includes information about itself, such as its name, version, a list of its dependents, the URL to its repository, and other information.
Package development works best when you work inside the Unity Editor:
Open the Unity Hub, and create a local empty Project.
In the newly created Project folder, navigate to the Packages folder and create a new subfolder. Make sure you name the subfolder with the same name as your new package. For information about restrictions on package names, see Naming your package.
Implement your tools, libraries, and any Assets your package requires.
Make sure the layout of your package follows the package layout convention for Unity packages.
Fill out all required and mandatory fields in the package manifest (package.json).
Tests/Editor
.Tests/Runtime
.Rename and update the assembly definition files.
You can update the CHANGELOG.md file every time you publish a new version. Every new feature or bug fix should have a trace in this file. For more details on the chosen changelog format, see Keep a Changelog.
NOTE: This is optional for packages that you don’t share, but strongly recommended for shared packages, so that users know which version best suits their needs.
You can include licenses and third-party notices in the LICENSE.md
and THIRD PARTY NOTICES.md
files.
NOTE: This is optional for packages that you don’t share, but strongly recommended for shared packages, so that your users don’t misuse your packages or violate any third-party licenses.
Share your package.
2019–04–11 Page published with editorial review
Custom Packages added in Unity 2019.1 NewIn20191
Did you find this page useful? Please give it a rating: