Package Manager 为压缩包内容和注册表元数据维护全局缓存。
全局缓存与 Package Manager 为资源包维护的缓存是分开的。有关资源包缓存的信息,请参阅自定义资源包缓存位置。
默认情况下,Package Manager 的全局缓存根具有以下子目录,每个辅助缓存具有不同的用途:
db 子目录存储注册表数据(包元数据和 tarball)。git-lfs 子目录会存储下载的 Git Large File Storage (LFS) 文件。
注意:如果您已经使用 Unity Editor 2023.2 创建了项目,则全局缓存可能还有一个 packages 子目录。从 Unity 6 Beta 开始,Package Manager 不再使用此子目录。如果不再维护使用旧版编辑器 (Editor) 创建的项目,则可以删除此子目录。
Package Manager 将全局缓存存储在默认位置,但您可以覆盖该位置。有关全局缓存根目录的默认位置的信息,请参阅全局缓存。
您可能出于以下原因,希望覆盖全局缓存位置:
从 2023.2.0f1 开始,db 子目录的最大大小默认为 10 GB,但您可以覆盖该大小。您可能出于以下原因,希望覆盖 db 子目录的最大大小:
下表说明了可用于覆盖默认属性的不同方法:
| 方法 | 全局缓存位置 | db 子目录最大大小 |
补充说明 |
|---|---|---|---|
| 偏好 (Preferences) 窗口 | 是 | 否 | 这是推荐的方法,因为它很容易实现且具有持久性。使用此方法更改包缓存位置时,Unity 会存储当前和未来 Unity Editor 会话的偏好设置。 |
| 用户配置文件 | 是 | 是 | 用户配置文件中的包缓存属性覆盖设置在当前 Unity Editor 会话之后仍然存在。 |
| 环境变量 | 是 | 是 | 默认情况下,此方法为当前命令提示符(或终端)会话设置配置,但可以在操作系统设置中设为永久配置。在特定用例中,高级用户可能更喜欢基于会话的变量。 |
注意:使用偏好窗口设置全局缓存位置也会导致在用户配置文件中设置 cacheRoot 属性。如果要手动设置用户配置文件,请参阅使用用户配置文件。
db 子目录的最大大小,并且新大小小于该子目录的当前大小,则 Package Manager 将从缓存中驱逐内容,直到达到新限制。Package Manager 首先驱逐最近使用最少的内容(基于项目的安装日期)。UPM_NPM_CACHE_PATH) 或 Git LFS 缓存 (UPM_GIT_LFS_CACHE_PATH) 设置了环境变量,则 Package Manager 将使用环境变量指定的位置,无论全局缓存根目录在哪里。UPM_ENABLE_GIT_LFS_CACHE),但未显式制定其路径 (UPM_GIT_LFS_CACHE_PATH),Package Manager 将使用全局缓存根下的 git-lfs 文件夹作为其位置。
要使用偏好窗口覆盖全局缓存的默认位置,请执行以下步骤。
使用以下方法之一打开偏好窗口:
选择 Package Manager 类别。
在包 (Packages) 下,打开缓存位置 (Cache Location) 旁边的菜单
。
选择更改位置 (Change Location)。
选择全局缓存的新位置。
可以手动编辑用户配置文件以覆盖全局缓存根目录的位置或 db 子目录的最大大小,或两者都实现。
按照以下步骤编辑用户配置文件:
找到 .upmconfig.toml 用户配置文件位置。要查找文件位置,请参阅配置文件。如果文件不存在,请创建一个空文本文件。
要覆盖全局缓存根的位置,请添加 cacheRoot 键并将其值设置为自定义位置的绝对路径。重要提示:在 TOML 文件中设置 Windows 路径时,请使用正斜杠 (/) 或双反斜杠 (\\)。不要使用单个反斜杠 (\),因为它们是标记转义序列的特殊字符,可能导致 TOML 解析错误。
要覆盖 db 子目录的最大大小,请添加 maxCacheSize 键并将其值设置为表示字节数的正整数。例如,要将大小设置为 5 GB,请分配 5000000000 的值。
设置这两项属性后,无需重启 Unity Editor 或 Hub 即可让更改生效。
Windows 示例
cacheRoot = "E:\\Unity\\cache"
maxCacheSize = 5000000000
macOS 和 Linux 示例
cacheRoot = "/dev/external/shared/Unity/cache"
maxCacheSize = 5000000000
在涉及自动化或持续集成的情况下,在用户配置文件或偏好窗口中配置设置不太实用,也更容易出错。在这种情况下,可以考虑使用环境变量来配置全局缓存及其附属缓存的设置。以下环境变量可用:
| 环境变量 | 描述 |
|---|---|
UPM_CACHE_ROOT |
指定全局缓存的位置(包含注册表数据和未压缩包缓存的根文件夹)。 |
UPM_NPM_CACHE_PATH |
指定您希望 Package Manager 用于其注册表数据缓存的位置的绝对路径。默认情况下,这是全局缓存根目录下的 db 子文件夹。 |
UPM_ENABLE_GIT_LFS_CACHE |
指定空值 ("") 以外的任何值以启用 Git LFS 缓存。默认情况下,Package Manager 使用全局缓存根目录下的 git-lfs 子目录,除非您使用 UPM_GIT_LFS_CACHE_PATH 环境变量指定了不同的路径。 |
UPM_GIT_LFS_CACHE_PATH |
指定您希望 Package Manager 存储 Git LFS 缓存的位置的绝对路径。通过设置此路径,可自动启用 Git LFS 缓存。 |
UPM_MAX_CACHE_SIZE |
将注册表数据缓存(db 子目录)的最大大小指定为正整数(以字节为单位)。例如,要将大小设置为 5 GB,请分配 5000000000 的值。 |
重要提示:使用此方法时,请遵循以下准则:
有关设置环境变量的信息,请参阅操作系统的文档。有关环境变量的介绍,请参阅 https://en.wikipedia.org/wiki/Environment_variable。