Version: 2020.2
Dependency and resolution
Configuration

全局缓存

Unity Package Manager 在下载包内容和元数据时,会将它们存储在全局缓存中。这样可以更有效地重复使用和共享包,甚至在脱机时也可以安装和更新存储的包。

位置

默认情况下,Unity 将全局缓存存储在根目录中,根目录取决于操作系统(在 Windows 上还取决于用户帐户类型):

操作系统 默认根目录
Windows(非系统用户帐户) %LOCALAPPDATA%\Unity\cache
Windows(系统用户帐户) %ALLUSERSPROFILE%\Unity\cache
macOS $HOME/Library/Unity/cache
Linux $HOME/.config/unity3d/cache

结构

Package Manager 使用两个不同的共享缓存,每个有不同的用途。它们存储在上述文件夹位置下的子目录中:

子文件夹 描述
npm 存储使用 npm 协议从注册表获得的数据。这包括包元数据和包 tarball
packages 此缓存包含从注册表获取的包 tarball 的未压缩内容。

在每个子文件夹中,每个注册表都有其自己的路径,因此不会混淆托管在不同注册表中的包。

要求

运行 Unity Editor 进程的用户帐户必须对根目录及其内容具有完全写权限。没有这些权限,Package Manager 将无法下载包元数据和内容,也无法将它们保存在缓存中。

自定义共享缓存位置

可以使用两个环境变量来覆盖任一全局缓存文件夹:

  • UPM_NPM_CACHE_PATH 覆盖 npm 文件夹路径。例如 (macOS):

    UPM_NPM_CACHE_PATH=/dev/ssd/shared/Unity/cache/npm

  • UPM_CACHE_PATH 覆盖 packages 文件夹路径。例如 (macOS):

    UPM_CACHE_PATH=/dev/ssd/shared/Unity/cache/packages

更改这些环境变量中的任何一个后,必须重新启动 Unity Editor 和 Hub 才能使更改生效。


Dependency and resolution
Configuration