Create your own Unity Package Manager (UPM) package to extend the functionality of the Unity Editor.
You can use packages that you create for one of your projects or for multiple projects. You can also share your package with others in your organization or studio so they can use it in any project. You can even distribute your package through official channels, for the wider community to use.
| Topic | Description |
|---|---|
| Package development workflow | Understand the development workflow for creating new UPM packagesA Package managed by the Unity Package Manager. Refer to Packages. See in Glossary. |
| Name your package | Set your official package name that appears in the Editor. |
| Package layout | Follow the recommended folder structure for the manifest, Editor and Runtime assemblies, tests, samples, and documentation. |
| Add tests to your package | Verify behavior with tests during development. |
| Create samples for your package | Include optional samples that help users learn the package and import example content. |
| 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 |
Define the metadata the Editor uses to identify, load, and manage your package. |
| Package versioning | Apply semantic versioning so version numbers reflect compatible and breaking changes. |
| Create or edit the assembly definitions | Configure assembly definitions so the Editor compiles package 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 as separate assemblies. |
| Add required legal files to your package | Supply licensing and attribution when distribution requires it. |
| Document your package | Create documentation that helps users get the most out of your package. |
| Share your package | Distribute your finished package via archive, tarball, Git URL, or scoped registry. |