When the Unity Package Manager fetches UPM packagesA Package managed by the Unity Package Manager. Refer to Packages.
See in Glossary, it stores the package contents and metadata in a global cache. This makes reusing and sharing packages more efficient, and allows you to install and update stored packages even when offline
Note: Storing packages in the global cache applies to UPM packages fetched from a registry. Packages in the UPM format that come from the 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 are also stored in the global cache. However, asset packagesA collection of files and data from Unity projects, or elements of projects, which are compressed and stored in one file, similar to Zip files, with the .unitypackage
extension. Asset packages are a handy way of sharing and re-using Unity projects and collections of assets. More info
See in Glossary in the .unitypackage
format that come from the Asset Store aren’t stored in the global cache. The Package Manager stores asset packages in a separate cache. For more information, refer to Asset Store packages.
By default, Unity stores the global cache in a root directory that depends on the operating system (and the user account type on Windows):
Operating system | Default root directory |
---|---|
Windows (user account) | %LOCALAPPDATA%\Unity\cache |
Windows (system user account) | %ALLUSERSPROFILE%\Unity\cache |
macOS | $HOME/Library/Unity/cache |
Linux | $HOME/.config/unity3d/cache |
Tip: You can override the location of this root directory. See Customizing the shared cache locations for more information.
The Package Manager global cache uses two different subsidiary caches, each serving a different purpose. The Package Manager stores these subsidiary caches in subdirectories under the folder of the global cache:
Subfolder | Description |
---|---|
npm |
Stores data obtained from registries using the npm protocol. This includes package metadata and package tarballs. |
packages |
This cache contains the uncompressed contents of package tarballs fetched from a registry. |
git-lfs |
This cache contains downloaded Git Large File Storage (LFS) files, if you’ve enabled Git LFS. |
Inside each of these subfolders, each registry has its own path so that packages hosted on different registries aren’t mixed up.
Tip: You can override the location of these folders. See Customizing the shared cache locations for more information.
The user account running the Unity Editor process must have full write permissions on the root directory and its contents. Without these permissions, the Package Manager can’t download and save the package metadata and contents in the cache.
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?
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.