项目清单中的 dependencies 属性是一个 JSON 对象,可将包名称映射到版本。版本号指示要从包注册表下载包的哪个版本。例如:
{
"dependencies": {
"com.my-package": "2.3.1",
"com.my-other-package": "1.0.1-preview.1",
etc.
}
}
除了使用版本号之外,Package Manager 还支持通过以下内容来添加项目依赖关系:
直接依赖关系是项目级别的依赖关系。通过 Package Manager 窗口来安装包或手动编辑项目的 manifest.json
文件以显式添加依赖关系时,您将创建直接包依赖关系 ():
包可以声明自身对其他包的依赖关系。当您安装包时,此类包依赖关系将成为项目的间接 () 依赖关系,也称为传递性依赖关系。
Package Manager 会确定要安装包的哪个版本(无论包将成为项目的直接依赖项还是间接依赖项)。为此,Package Manager 将优先考虑直接依赖关系,然后才考虑间接依赖关系,但前提是更高优先级的版本不违反任何其他要求。
这种评估称为依赖关系解析,大致遵循以下逻辑:
1.选择直接依赖项的版本。 2.如果没有直接依赖项,并且这是__内置包__版本,则选择内置版本。 3.如果没有直接依赖项,并且这不是内置包版本,则检查这是不是多个包的间接依赖项: * 如果这是项目中唯一一个包的间接依赖项,则不存在冲突,因此请选择以下版本中的更高版本: * 此间接依赖项的版本 * Unity 需要的最低版本 * 如果出现多个间接依赖项,而且这些间接依赖项请求多个版本,则可能会产生冲突。Package Manager 可以使用自动冲突解决策略来解决大多数冲突。
在任何情况下,都可以手动覆盖这些解决策略。为此,请在项目清单中请求特定版本(通过从 Package Manager 窗口进行安装或通过直接编辑清单)。这将创建直接依赖关系,其优先级高于任何解决策略。