Version: 2019.4
Dependency and resolution
Configuration

Global Cache

When the Unity Package Manager downloads package contents and metadata from a registry, it stores them 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: The global cache doesn’t include packages in the .unitypackage format that come 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
. The Package Manager stores these types of packages in a separate cache. For more information, see Asset Store packages.

Location

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: To override the location of this root directory, you can either set the UPM_CACHE_ROOT environment variable or update the cacheRoot property in a configuration file. See Customizing the shared cache locations for more information.

Structure

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.

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 using environment variables. See Customizing the shared cache locations for more information.

Requirements

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.


Dependency and resolution
Configuration