包管理器维护一个 全局缓存 用于压缩的包内容和注册表元数据。
全局缓存独立于包管理器维护的资源包缓存。有关 资源包来自 Unity 项目的文件和数据的集合,或项目的元素,它们被压缩并存储在一个文件中,类似于 Zip 文件,扩展名为 .unitypackage
。资源包是共享和重复使用 Unity 项目和资产集合的一种便捷方式。 更多信息
请参阅 术语表 缓存的信息,请参考 自定义资源包缓存位置。
默认情况下,包管理器的全局缓存根目录具有以下子目录,每个子缓存都有不同的用途
db
子目录存储注册表数据(包元数据和压缩包)。git-lfs
子目录存储下载的 Git Large File Storage (LFS) 文件。
注意:如果您使用 Unity 编辑器 2023.2 创建了项目,您的全局缓存中可能还会有一个 packages
子目录。从 Unity 6 Beta 开始,包管理器不再使用此子目录。如果您不再维护使用旧版本编辑器创建的项目,则可以删除此子目录。
包管理器将全局缓存存储在默认位置,您可以覆盖该位置。有关全局缓存根目录的默认位置的信息,请参考 全局缓存。
您可能出于多种原因想要覆盖全局缓存位置
从 2023.2.0f1 开始,db
子目录的最大大小默认为 10 吉字节 (GB),您可以覆盖它。您可能出于多种原因想要覆盖 db
子目录的最大大小
下表说明了您可以用来覆盖默认属性的不同方法
方法 | 全局缓存位置 | db 子目录最大大小 |
其他说明 |
---|---|---|---|
首选项窗口 | 是 | 否 | 这是推荐的方法,因为它简单且持久。当您使用此方法更改包缓存位置时,Unity 会存储当前和未来 Unity 编辑器会话的首选项。 |
用户配置文件 | 是 | 是 | 用户配置文件中的包缓存属性覆盖将持续存在于当前 Unity 编辑器会话之外。 |
环境变量 | 是 | 是 | 默认情况下,此方法为当前命令提示符(或终端)会话设置配置,但您可以在操作系统设置中使其永久生效。高级用户可能更喜欢特定用例中的基于会话的变量。 |
注意:使用首选项窗口设置全局缓存位置也会在用户配置文件中设置 cacheRoot
属性。如果您想手动设置用户配置文件,请参考 使用用户配置文件。
db
子目录的最大大小,并且新大小小于该子目录的当前大小,则包管理器将从缓存中逐出内容,直到达到新的限制。包管理器会首先逐出最近最少使用的内容(基于安装到项目中的日期)。UPM_NPM_CACHE_PATH
)或 Git LFS 缓存(UPM_GIT_LFS_CACHE_PATH
)设置了环境变量,则包管理器将使用环境变量指定的位置,而不管全局缓存根目录在哪里。UPM_ENABLE_GIT_LFS_CACHE
)但未明确设置其路径(UPM_GIT_LFS_CACHE_PATH
),则包管理器将使用全局缓存根目录下的 git-lfs
文件夹作为其位置。要使用首选项窗口覆盖全局缓存的默认位置,请按照以下步骤操作。
使用以下方法之一打开首选项窗口
选择包管理器类别。
在包下,打开缓存位置 旁边的菜单。
选择更改位置。
选择全局缓存的新位置。
您可以手动编辑用户配置文件以覆盖全局缓存根目录的位置或 db
子目录的最大大小,或两者兼而有之。
按照以下步骤编辑用户配置文件
找到 .upmconfig.toml
用户配置文件。要查找文件位置,请参考 配置文件。如果文件不存在,请创建一个空文本文件。
要覆盖全局缓存根目录的位置,请添加 cacheRoot
键并将其值设置为自定义位置的绝对路径。重要:在 TOML 文件中设置 Windows 路径时,请使用正斜杠 (/
) 或双反斜杠 (\\
)。不要使用单反斜杠 (\
),因为它们是特殊字符,用于标记转义序列,会导致 TOML 解析错误。
要覆盖 db
子目录的最大大小,请添加 maxCacheSize
键并将其值设置为表示字节数的正整数。例如,要将大小设置为 5 GB,请分配一个值为 5000000000
的值。
您不需要在设置任一属性后重新启动 Unity 编辑器或 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 |
指定您希望包管理器将其用于注册表数据缓存的位置的绝对路径。默认情况下,这是全局缓存根目录下的 db 子目录。 |
UPM_ENABLE_GIT_LFS_CACHE |
指定除空 (“”) 以外的任何值以启用 Git LFS 缓存。默认情况下,包管理器使用全局缓存根目录下的 git-lfs 子目录,除非您使用 UPM_GIT_LFS_CACHE_PATH 环境变量指定了不同的路径。 |
UPM_GIT_LFS_CACHE_PATH |
指定您希望包管理器存储 Git LFS 缓存 的位置的绝对路径。通过设置此路径,您会自动启用 Git LFS 缓存。 |
UPM_MAX_CACHE_SIZE |
指定注册表数据缓存(db 子目录)的最大大小,以字节为单位的正整数。例如,要将大小设置为 5 GB,请分配一个值为 5000000000 的值。 |
重要:使用此方法时,请遵循以下指南
有关设置环境变量的信息,请参考您操作系统的文档。有关环境变量的介绍,请参考 https://en.wikipedia.org/wiki/Environment_variable。