Unity’s Package Manager supports two package types:
.unitypackage format).The following table compares the differentiating characteristics of these package types:
| Characteristic | UPM packages | Asset packages |
|---|---|---|
| Format | Collection of files and folders, which might be compressed, depending on the distribution method. | A compressed file with a .unitypackage extension. |
| Primary source for the package | Unity registry, scoped registry, or Asset Store. | Asset Store |
| Typical contents | Scripts, tools, utilities, and SDKs. | Art and media assets (such as models, textures, animations, audio.) |
| Supports package dependencies | Yes | No |
| Supports version switching in the Editor | Yes | No |
| Uses a 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 file |
Yes | No |
| UI action for adding the package to a project | Install | Download and import |
| Folder structure | Standardized | Free-form |
| Project folder the package is added to | Packages |
Assets |
| Cache the package is added to | Global cache | Asset package cache. Refer to Location of downloaded asset package files. |
| You can manually remove the package from the cache | No | Yes |
| Sets of tabs that appear in the Details panel | Description, Version History, Dependencies, Samples (if provided), Images (if provided) | Overview, Releases, Imported Assets, Images |
If you’re creating a package, follow these guidelines to help you determine which format to choose:
.unitypackage) for one-time imports of art assets such as (but not limited to) models, textures, animations, and audio. This format is also appropriate for informal package sharing, rather than distributing in a registry (scoped or otherwise).