Unity 加载项目时,Unity Package Manager 会读取项目清单,以便计算要加载的包的列表。当用户通过 Package Manager 窗口安装或卸载包时,Package Manager 会将这些更改存储在项目清单文件中。项目清单文件通过依赖关系对象来管理包的列表。
此外,项目清单还可以作为 Package Manager 的配置文件。它存储一个或多个包注册表的位置。对于 Git 包,项目清单还提供了一个锁定对象,用于定义提交哈希和修订号,以确保 Package Manager 始终安装完全相同的依赖项。
您可以在 Unity 项目根文件夹下的 Packages
文件夹中找到名为 manifest.json
的项目清单文件。与包清单文件类似,项目清单文件使用 JSON(JavaScript 对象表示法)语法。
所有属性均为可选。但是,如果您的项目清单文件不包含任何值,则不会加载 Package Manager 窗口,并且 Package Manager 不会加载任何包。
提示:任何时候,都可以从 Unity 帮助主菜单中选择 Reset packages to defaults 来解决注册表问题。但请注意,此操作将重置您对项目中的包所做的所有更改,因此最好将这种策略用作最后的选择。
键 | JSON 类型 | 描述 |
---|---|---|
dependencies | 对象 | 项目中可用包的列表。清单中的此条目使用映射结构列出与项目所需版本关联的包名称。 请参阅依赖关系部分了解有关所有受支持模式的更详细概述。 注意:该列表不包括间接依赖项(也就是其他包需要的包)。 |
registry | String | Unity Package Manager 主注册表的 URL。这将覆盖默认的注册表 URL (https://packages.unity.com )。注意:如果您用自己的注册表覆盖默认注册表,则会失去对官方 Unity 包的访问权限。但如果您想使用自己的私有包集合来扩充 Unity 包库,请设置 scopedRegistries 属性以改用某一范围内的注册表。 |
scopedRegistries | 对象数组 | 指定除了默认注册表之外的自定义注册表。这样允许您托管自己的包。 请参阅范围注册表一节以了解更多详细信息。 |
lock | 对象 | 用提交哈希和所选修订版本描述 Git 包解析信息。Package Manager 将自动更新此属性。这样可以保证 Package Manager 安装完全相同的依赖项。 该属性是为 Git 包保留的属性,但是其他功能未来可能会使用该属性,以保证确定性的包版本解析。 |
testables | 字符串数组 | 列出您要包含在 Unity Test Runner 中的包名称。有关更多信息,请参阅向包添加测试。 |
{
"registry": "https://my.registry.com",
"scopedRegistries": [{
"name": "My internal registry",
"url": "https://my.internal.registry.com",
"scopes": [
"com.company"
]
}],
"dependencies": {
"com.unity.package-1": "1.0.0",
"com.unity.package-2": "2.0.0",
"com.unity.package-3": "3.0.0",
"com.unity.my-local-package": "file:/path/to/com.unity.my-local-package",
"com.unity.my-git-package": "https://my.repository/my-package.git#v1.2.3"
},
"lock": {
"com.unity.my-git-package": {
"hash": "9e72f9d5a6a3dadc38d813d8399e1b0e86781a49",
"revision": "v1.2.3"
}
},
"testables": [ "com.unity.package-1", "com.unity.package-2" ]
}