包含此页的版本:
不含此页的版本:
将作用域注册表添加到项目以访问自定义包。
每当您向项目添加作用域注册表时,请使用与安装任何其他第三方软件时相同的谨慎程度:
您可以使用项目设置(Project Settings) 广泛的设置集合,允许您配置物理、音频、网络、图形、输入和项目的许多其他区域的行为方式。更多信息
请参阅术语表窗口或项目清单文件来管理项目中的作用域注册表。
你可以在 项目设置(Project Settings) 窗口的 包管理器(Package Manager) 面板中为项目添加、修改和删除作用域注册表。“作用域注册表”组在设置组左侧显示添加到当前项目的作用域注册表列表,并在右侧显示所选注册表的详细信息。
要使用 项目设置(Project Settings) 窗口的 包管理器(Package Manager) 面板将新的作用域注册表添加到项目中:
注意:添加作用域注册表时,可能会遇到以下一个或多个问题:
出现这些问题可能是因为您添加的包注册表服务器未实现/-/v1/search或/-/all端点。Unity 的包管理器需要这些端点。
要使用“项目设置”窗口的“包管理器”面板修改现有作用域注册表,请执行以下作:
要使用“项目设置”窗口的“包管理器”面板删除现有作用域注册表,请执行以下作:
这项目清单每个 Unity 项目都有一个项目清单,用作包管理器的入口点。此文件必须在<project>/Packages目录。包管理器使用它来配置许多内容,包括该项目的依赖项列表,以及要查询包的任何包存储库。更多信息
请参阅术语表使用 scopedRegistries 属性,该属性包含作用域注册表配置对象的数组。每个对象都有以下属性:
| 财产 | JSON 类型 | 描述 |
|---|---|---|
| 名字 | 字符串 | 用户界面中显示的范围名称。包管理器(Package Manager) 窗口在详细信息面板中显示此名称。 例如 "name": "Tools". |
| 网址 | 字符串 | 与 npm 兼容的注册表服务器的 URL。 例如 "url": "https://mycompany.example.com/tools-registry"注意:并非所有注册表提供程序都与 Unity 的包管理器兼容。确保您尝试添加的包注册表服务器实现了 /-/v1/search或/-/all端点。 |
| 范围 | 字符串数组 | 可以映射到包名称的范围数组,可以作为包名称的完全匹配项,也可以作为命名空间。不支持通配符和其他 glob 模式。 例如 "scopes": [ "com.example", "com.example.tools.physics" ] 注意:此配置类型假定软件包遵循反向域名表示法。这确保了 com.unity等效于与com.unity命名空间,例如com.unity.timeline或com.unity.2d.animation.警告:Unity 不支持 npm 的 @scope表示法。 |
在以下项目清单中,有两个作用域注册表,General和Tools:
{
"scopedRegistries": [
{
"name": "General",
"url": "https://example.com/registry",
"scopes": [
"com.example", "com.example.tools.physics"
]
},
{
"name": "Tools",
"url": "https://mycompany.example.com/tools-registry",
"scopes": [
"com.example.mycompany.tools"
]
}
],
"dependencies": {
"com.unity.animation": "1.0.0",
"com.example.mycompany.tools.animation": "1.0.0",
"com.example.tools.physics": "1.0.0",
"com.example.animation": "1.0.0"
}
}
当包管理器决定从哪个注册表获取包时,它会比较包name到scopes值并查找其scopesvalue 是最接近的匹配项。以下方案显示了包管理器在评估General和Tools上一个 JSON 文件中的注册表:
com.example.animationpackage,它会发现com.example命名空间与其名称最接近匹配,并从General注册表。com.example.tools.physicspackage,Generalregistry 的范围与包名称完全匹配。com.example.mycompany.tools.animationpackage,包管理器会发现com.example.mycompany.tools命名空间与其名称最接近匹配,并从Tools注册表。虽然它也匹配Generalscope,则com.example命名空间的匹配项不那么接近。com.unity.animationpackage,包管理器在任何作用域注册表中都找不到匹配项。在这种情况下,它从默认注册表中获取包。如果您在共享项目中工作,并且其他用户向项目添加了作用域注册表,则 Unity 会警告您另一个用户添加了新的作用域注册表。
选择“关闭”时,将显示“包管理器”项目设置窗口,以便您可以管理项目的作用域注册表。
如果选择“阅读更多”,Unity 会在默认 Web 浏览器中打开作用域注册表。
提示:要随时访问包管理器项目设置窗口,请使用 Unity 中的主菜单(编辑>项目设置,然后是包管理器类别)。你还可以从 包管理器(Package Manager) 窗口的高级设置菜单中选择 高级项目设置(Advanced Project Settings)。
如果要访问需要身份验证的作用域注册表,则必须使用 npm 身份验证配置包管理器用户配置文件。有关详细信息,请参阅作用域注册表身份验证。