版本:Unity 6 (6000.0)
语言:英语
包状态和生命周期
全局缓存

依赖关系和解析

当您在包管理器窗口中工作时,您可以从多个来源安装包(注册表、本地 文件夹tarballGit URL 以及按 名称)。但是,虽然包管理器可以无缝地从这些来源安装包,但它首先必须进行一系列计算才能确定要安装哪个版本。它还必须决定要安装哪些其他包和版本来支持您选择的包。

直接依赖关系

当您选择一个包版本通过包管理器窗口安装时,您就是在向您的 项目清单每个 Unity 项目都有一个项目清单,它充当包管理器的入口点。此文件必须位于<project>/Packages 目录中。包管理器使用它来配置许多内容,包括该项目的依赖项列表,以及要查询包的任何包存储库。 更多信息
请参阅 词汇表
添加“依赖项”。这是一个声明,即您需要特定版本的特定包才能使项目正常工作。要向您的项目添加依赖项,您需要以package-name@package-version 的形式将对包和版本的引用添加到<project-root>/Packages/manifest.json 文件的 依赖项 属性中。这些被称为“直接”依赖项,因为您的项目直接依赖于它们。

间接依赖关系

包也可能需要其他包才能正常工作。这些被称为“间接”(或传递)依赖项。包开发人员在开发期间将这些添加到包清单文件的 依赖项 属性中(<package-root>/package.json)。例如,在下图中,[email protected] 包依赖于[email protected] 包,因此时间轴包是“间接”依赖项。相反,项目依赖于[email protected][email protected] 包,因此它们都是“直接”依赖项。

A diagram showing both direct and indirect dependencies
显示直接和间接依赖关系的图表

版本覆盖

当您将包版本添加为依赖项时,该版本不一定是包管理器安装的版本。原因是包管理器必须考虑您项目中的所有依赖项,无论是直接的还是间接的。在以下示例中,请求的XR一个涵盖虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用程序的总称。支持这些形式的交互式应用程序的设备可以称为 XR 设备。 更多信息
请参阅 词汇表
插件管理
包是版本4.0.3。但是,包管理器安装了版本4.0.6,因为另一个包依赖于更高版本,如信息消息 (B) 所示

When you click the information button in the details panel (A), a text box appears (B) explaining why this version was installed instead of the one you requested
当您点击详细信息面板中的信息按钮 (A) 时,会出现一个文本框 (B) 解释为什么安装了此版本而不是您请求的版本

依赖项图

包管理器一次只能安装一个包版本,因此它必须构建一个 依赖项图。此图是项目所有直接和间接依赖项的列表。依赖项图确定要安装每个包的哪个版本。

锁定文件

当包管理器解决所有版本冲突时,它会将解决方案保存到 锁定文件 中,原因有两个

  • 确定性,以确保每次都能可靠地安装相同的包。
  • 效率,以减少再次计算依赖项图所需的时间和资源。


包状态和生命周期
全局缓存