包含此页的版本:
不含此页的版本:
Unity 使用包清单文件 (package.json) 来管理有关特定包的特定版本的信息。包清单始终位于包的根目录,并包含有关包的关键信息,例如其注册名称和版本号。
包清单还定义了与用户通信的有用信息,例如:
包清单使用 JSON(JavaScript 对象表示法)语法来描述包内的内容。该文件的格式类似于 npm 的package.json格式,但对其某些属性使用不同的语义。有关示例包清单文件,请参阅示例。
包管理器读取此清单以找出包的内容、如何解压缩其内容以及要在包管理器窗口中显示的信息。清单将此信息存储在一系列必需、推荐和可选属性中。
如果这些属性不存在,则注册表在发布包时拒绝包,或者包管理器无法提取或加载包。
| 财产 | JSON 类型 | 描述 |
|---|---|---|
| 名字 | 字符串 | 符合 Unity 包管理器命名约定的唯一标识符,该约定使用反向域名表示法。有关命名约定的更多信息,请参阅命名包。 注意:该 nameidentifier 与“包管理器”窗口的列表面板中显示的用户友好显示名称不同。 |
| 版本 | 字符串 | 包版本号,其格式为"major.minor.patch".例如 "3.2.1"表示这是第 3 个主要版本、第 2 个次要版本和第 1 个补丁。此值必须遵循语义版本控制。有关详细信息,请参阅版本控制。 |
包管理器可以在项目中安装包,即使建议的属性缺失或值无效也是如此。
但是,建议的最佳做法是为这些属性分配值,以确保包可被发现,并为用户提供更好的体验。
| 财产 | JSON 类型 | 描述 |
|---|---|---|
| 描述 | 字符串 | 包的简要说明。这是出现在 包管理器(Package Manager) 窗口的细节面板中的文本。此字段支持 UTF–8 字符代码。这意味着您可以使用特殊的格式字符代码,例如换行符 (\n) 和项目符号 (\u25AA). |
| 显示名称 | 字符串 | 在 Unity 编辑器中显示的用户友好名称(例如,在“项目”窗口、“包管理器”窗口等中)。 示例 displayName值是 Unity Timeline、ProBuilder 和 In App Purchasing。 |
| 统一 | 字符串 | 指示包兼容的最低 Unity 版本。如果省略,包管理器会认为包与所有 Unity 版本兼容。 预期 的格式是 "major.minor"(例如,"2018.3").Unity 6.0 及更高版本遵循相同的"####.#"格式。例如,Unity 6.0 的技术版本号是"6000.0".要指向特定补丁,还包括 unityRelease属性,请参阅可选属性。注意:与 Unity 不兼容的包不会显示在包管理器窗口中。 |
这些属性是可选的,这意味着您可以省略它们。但是,如果它们存在,则它们必须具有有效值。
| 财产 | JSON 类型 | 描述 |
|---|---|---|
| 作者 | 对象或字符串 | 包的作者。此属性仅支持一个作者。 此属性有一个必填字段 name 和两个可选字段 email 和 url。 您可以将这些字段指定为 JSON 对象,或将它们折叠为键为 author 的单个字符串。 对象示例: {"name" : "John Doe","email" : "john.doe@example.com","url" : "http://john.doe.example.com/"} 字符串示例: "John Doe <john.doe@example.com> (http://john.doe.example.com/)"
|
| 更新日志网址 | 字符串 | 指定为 URL 的此包变更日志的自定义位置。例如:"changelogUrl": "https://example.com/changelog.html"注意:当包管理器无法访问 URL 位置时(例如,如果存在网络问题),它会执行以下作: - 如果已安装包,包管理器会打开一个文件浏览器,其中显示 CHANGELOG.md文件。- 如果未安装包,包管理器会显示一条警告,指出脱机变更日志不可用。 |
| 依赖 | 对象 | 包依赖关系的映射。键是包名称,值是特定版本。它们标识此包所依赖的其他包。 注意:包管理器不支持范围语法,仅支持 SemVer 版本。 |
| 文档网址 | 字符串 | 此包文档的自定义位置,指定为 URL。例如:"documentationUrl": "https://example.com/"注意:当包管理器无法访问 URL 位置时(例如,如果存在网络问题),它会执行以下作: - 如果已安装包,包管理器会打开一个文件浏览器,其中显示 Documentation~文件夹。- 如果未安装包,包管理器会显示一条警告,指出脱机文档不可用。 |
| 隐藏编辑器 | 布尔 | 默认情况下,当您在 Inspector 窗口中使用对象选取器时,Project 窗口会隐藏包的资产并从结果中省略它们。将此属性设置为"false"以确保此包的资产始终可见。 |
| 关键字 | 字符串数组 | 包管理器搜索 API 使用的关键字数组。这有助于用户找到相关的包。 |
| 许可证 | 字符串 | 使用 SPDX 标识符格式的 OSS 许可证的标识符,或字符串(如“Refer to LICENSE.md file”)。 注意:如果在包清单中省略此属性,则包必须包含 LICENSE.md文件。 |
| 许可证网址 | 字符串 | 此包的许可证信息的自定义位置,指定为 URL。例如:"licensesUrl": "https://example.com/licensing.html"注意:如果包管理器无法访问 URL 位置(例如,如果存在网络问题),它会执行以下作: - 如果已安装包,它会打开一个文件浏览器,显示 LICENSE.md文件。- 如果未安装包,包管理器会显示一条警告,指出脱机许可证信息不可用。 |
| 样品 | 对象数组 | 包装中包含的样品列表。每个示例都有一个显示名称、描述和示例文件夹的路径,从Samples~文件夹:{"displayName": "<name-to-appear-in-the-UI>","description": "<brief-description>","path": "Samples~/<sample-subfolder>"}有关更多信息,请参阅为包创建示例。 |
| 类型 | 字符串 | 保留供内部使用。 |
| 统一发布 | 字符串 | Unity 版本的一部分,指示与包兼容的特定 Unity 版本。当更新的包需要在 Unity alpha/beta 开发周期中进行更改时,可以使用此属性。如果软件包需要新引入的 API,或者使用以不向后兼容的方式更改的现有 API,而没有 API 更新程序规则,则可能会出现这种情况。 预期 的格式是 "<update><release>(例如,"0b4").注意:如果省略推荐的 unity 属性,则此属性无效。 与 Unity 不兼容 的包不会显示在“包管理器”窗口中。 |
{
"name": "com.[company-name].[package-name]",
"version": "1.2.3",
"displayName": "Package Example",
"description": "This is an example package",
"unity": "2019.1",
"unityRelease": "0b5",
"documentationUrl": "https://example.com/",
"changelogUrl": "https://example.com/changelog.html",
"licensesUrl": "https://example.com/licensing.html",
"dependencies": {
"com.[company-name].some-package": "1.0.0",
"com.[company-name].other-package": "2.0.0"
},
"keywords": [
"keyword1",
"keyword2",
"keyword3"
],
"author": {
"name": "Unity",
"email": "unity@example.com",
"url": "https://www.unity3d.com"
}
}