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:
Thanks for rating this page!
What kind of problem would you like to report?
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
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:
Thanks for helping to make the Unity documentation better!