本文首发于“洪流学堂”微信公众号。
洪流学堂,让你学Unity快人几步
一个包是一个容器,它可以包含各种资源的组合:shader、纹理、插件、图标、脚本等,可以增强项目的各个部分。相对于Asset Store的包,Package Manager提供了更新,更容易集成的包管理方案,能够为Unity提供各种增强功能。
使用Unity Package Manager窗口(在Unity的顶部菜单中:Window > Package Manager)查看哪些包可用于安装或已安装在你的项目中。另外,你可以使用此窗口为每个项目安装,删除或更新包。
包管理器窗口查找包
默认情况下,包管理器窗口显示In Project下的包列表,只有安装在项目中的包才会显示在列表中。
单击All按钮显示所有可用包。该列表显示注册在包注册表中的所有内容,不管它们是否已经安装在项目中。
在项目和所有模式下查看包详细信息
“包管理器”窗口右侧的窗格显示有关所选包的详细信息。
详细信息这些详细信息包括以下信息:
- (A)显示名称
- (B)版本号(和标签,如果有的话)
- (C)打开包文档页面的链接
- (D)官方包名称会以
com.unity
开头 - (E)作者
- (F)安装或更新状态
- (G)简要说明
- (H)按钮来安装,删除或更新包
- (I)包更新日志的链接
版本标签
一些包在版本号旁边显示标签。这些标签传达有关该包版本的信息。
标记版本信息包管理器使用以下值:
标签 | 含义 |
---|---|
verified |
Unity的质量保证团队已正式确认此包可与编辑器的特定版本配合使用。 |
preview |
该包处于发布周期的早期阶段,可能尚未被开发团队或Unity的质量保证团队记录和完全验证。 |
没有标签的包默认是生产环境可以使用的。
查找更多信息
你可以通过查看文档了解更多关于包的信息。
单击详细信息窗格中的查看文档链接:
查看文档链接包文档页面将在你的默认浏览器中打开。
访问包管理器窗口
你可以通过包管理器窗口执行各种任务:
Window > Package Manager安装一个新包
安装按钮要安装一个新包:
- 打开项目管理器窗口并单击All按钮。
- 从“ 包”列表中选择要安装的包。包信息出现在“详细信息”窗格中。
- 点击安装XXX按钮。当进度条结束时,新包已准备好使用。
删除已安装的包
删除按钮删除已安装的包:
- 打开项目管理器窗口。
- 如果处于All模式,请单击In Project按钮。
- 从“ 包”列表中选择要删除的包。包信息出现在“详细信息”窗格中。
- 点击删除XXX按钮。当进度条结束时,程序包将从列表中消失。
备注:
- 你只能删除其他包不需要的包。
- 当你删除一个包时,它的任何编辑器或运行时功能都不再可用。
更新已安装的包
更新按钮你可以在In Project或All模式下更新包:
- 打开项目管理器窗口。有可用更新的包旁边会出现一个箭头指示符。
- 从Packages列表中选择要更新的包。包信息出现在“详细信息”窗格中。
- 点击更新至XXX按钮。当进度条完成时,新的包版本信息将显示在“详细信息”窗格中,并且任何新功能都立即可用。
高级配置
本节提供有关包清单文件的一些高级信息。你无需了解这些内容即可安装,删除和更新包。
除了其内容(资源,着色器,纹理,插件,图标和脚本)外,Unity包还包含包清单文件。包清单告诉Unity如何在包管理器窗口中显示其信息页面,以及如何在项目中安装包。
包的文件夹结构此外,它还包含几个文件,可帮助管理包部署,包括测试,示例,许可证,更新日志和文档。
Manifests
manifest文件有两种:项目清单(manifest.json)和包清单(package.json)。这两个文件都使用JSON(JavaScript Object Notation)语法与包管理器进行通信,通过描述每个项目可用的包以及每个包包含的内容。
项目manifests
项目清单(manifest.json
)告诉包管理器哪些包和版本可用于项目。
项目清单支持以下值:
键 | JSON类型 | 描述 |
---|---|---|
dependencies |
Object | 包管理器要加载的包列表。这些通常是在Unity中正式注册的包。 |
manifest.json
文件示例:
{
"dependencies": {
"com.unity.package-1": "1.0.0",
"com.unity.package-2": "2.0.0",
"com.unity.package-3": "3.0.0"
}
}
Unity将每个项目清单存储在[your_project_root_folder]/Packages/manifest.json
文件中。
包清单
包管理器使用包清单(package.json
)来确定要加载哪个版本的包,以及要在包管理器窗口中显示哪些信息。
包清单支持以下值:
键 | JSON类型 | 描述 |
---|---|---|
name |
String | 正式注册的包名称遵循以下命名惯例:"com.unity.[your package name]" 。例如,"com.unity.resourcemanager"
|
displayName |
String | Package Manager窗口中显示的包名称。例如,"Resource Manager"
|
version |
String | 包版本"MAJOR.MINOR.PATCH" 。Unity包遵循语义版本控制系统。例如,"1.3.0" 。 |
unity |
String | 支持这个包的Unity版本。例如,"2018.1" 表示从Unity版本2018.1开始的兼容性。 |
description |
String | 包的简要说明。这是出现在“包管理器”窗口的“详细信息”窗格中的文本。支持一些特殊的格式化字符代码,例如换行符(\n )和项目符号(\u25AA )。 |
keywords |
Array of Strings | 用于在Package Manager窗口中搜索的关键字,指定为JSON字符串数组。例如,["Physics", "RigidBody", "Component"] 。 |
category |
String | 此包所属的类别。例如,"Forces" 。 |
dependencies |
Object | 该包依赖的包列表,表示为JSON字典,其中键是包名,值是版本号。Unity会下载所有的依赖关系,并将它们与这个包一起加载到项目中。 |
package.json
文件示例:
{
"name": "com.unity.package-4",
"displayName": "Package Number 4",
"version": "2.5.1",
"unity": "2018.1",
"description": "This package provides X, Y, and Z. \n\nTo find out more, click the \"View Documentation\" link.",
"keywords": ["key X", "key Y", "key Z"],
"category": "Controllers",
"dependencies": {
"com.unity.package-1": "1.0.0",
"com.unity.package-2": "2.0.0",
"com.unity.package-3": "3.0.0"
}
}
Unity将每个包清单存储在[your_package_root_folder]/package.json
文件中。
包注册表
Unity维护着可供分发的官方包的中央注册表。Unity加载时,包管理器与注册表进行通信,检查项目清单文件,并在包管理器窗口中显示每个可用包的状态。
从项目中删除包时,包管理器会更新项目清单,以便在In Project模式下将该包从列表中排除,但仍以All模式提供,因为它仍在注册表中。
当你安装或更新程序包时,程序包管理器会从注册表中下载程序包。
Unity:世界领先的游戏,VR/AR引擎
《郑洪智的Unity2018课》,倾尽我8年的开发经验,结合最新的Unity2018,带你从入门到精通。
目前预售拼团,5.5折!
网友评论