(注:Unity 2018.1及以后的版本才可以使用Package Manager。)

一个package是一个容器,里面放的是Assets, Shaders, Textures, plug-ins, icons 和c# scripts,可以用来增强你项目的各个部分。Unity packages是Asset Store packages的更新(newer)、更紧密集成的版本(more tightly integrated versions),能够为Unity提供更广泛的增强功能。

使用Unity的包管理器窗口(Package Manager window,在Unity的顶部菜单: Window > Package Manager),可以 查看有哪些当前版本的Unity可用的包(packages),或者查看当前项目已经安装了哪些packages。另外,你也可以使用这个窗口来为项目安装,移除或更新packages。



Package Manager窗口左侧显示packages列表,右则显示选中的包的详细信息。

Finding packages 查找包

默认,包管理器窗口以In Project的模式显示packages列表,这样只有项目中已安装的packages才会出现在列表中。

你可以点击All按钮,这样为显示当前版本Unity所有可用的packages。这时左边列表里会显示所有已在包注册表(package registry,见下面)中注册的东西,无论它们是否已在当前项目中安装。

Viewing package details 查看package详细信息

包管理器右侧的面板显示的是选中的package的详细信息。

包括以下信息:

  • (A) 显示名称 (the display name)
  • (B) 版本号 (和 tag,如果有的话)
  • (C) package的文档页的超链接
  • (D) 以com.unity.开头的正式包名
  • (E) 作者
  • (F) 是否已安装,是否可更新
  • (G) 简要说明
  • (H) package的安装(install), 移除(remove),或更新(update)按钮
  • (I) 查看package变化日志的链接

Version tags 版本标签

有些package会成版本号(version number)旁边显示版本标签。这些标签(tags)传递关于这个package当前版本的信息。

包管理器使用下面这些值:

标签(Tag) 含义(Meaning)
verified 已验证版。Unity的质量保证团队已经正式验证过这个package可以和一个具体版本号的Editor一起工作
preview 预览版。这个package正处于发布周期的早期阶段,可能没有文档,可能也没有被完全验证过。

一个没有package的包被认为是生成安全的(A Package without a tag is considered production quality)。

Finding more information

通过查看package的文档,你可 查看更多关于一个package的信息。

你可以点击View Documentation来查看package的文档。



Package文档会成默认浏览器中打开。

Accessing the Package Manager window 打开包管理器窗口

通过Package Manager窗口,你可以完成各种各样的任务:

  • 安装一个新的package
  • 移除一个已安装的package
  • 更新一个已安装的package

打开包管理器窗口的方法:在Unity的主菜单栏中依次点Window > Package Manager,如下图:

Installing a new package 安装一个新包

安装一个新包的方法:

  1. 打开包管理器窗口,点击All按钮。
  2. 选择你想安装的Packages。对应的package信息会出现在右边的详细信息面板中。
  3. 在右侧的详细信息面板中点击Install X.X.X按钮。当进度条走完了,新包也就可以使用了。

Removing an installed package 移除已安装的包

移除一个已安装包的方法:

  1. 打开包管理器窗口。
  2. 点击In Project按钮。
  3. 选中你想移除的包。
  4. 在右侧详细信息面板中点击Remove X.X.X按钮。当进度条走完时,package也就从列表中消失了。

注意:

  • 你仅可以移除不被别的packages引用的packages。
  • 如果你移除一个包,则任何编辑器下或运行时对应的功能将不在可用。

Updating an installed package 更新一个已安装的包

你可以在In ProjectAll模式下,更新已一个packge:

  1. 打开包管理器窗口。任何名字后面有下载箭头的包都有可用的更新。
  2. 选中你想要更新的packages。
  3. 在详细信息面板中点击Update to X.X.X按钮。

Advanced package topics 关于package的高级话题

下面讲的是关于package manifest文件的更高级的信息。如果你中是安装、移除或更新packages的话,不需要往下看了。

一个Unity package除了它的内容(Assets, Shaders, Textures, plug-ins, icons和scripts)外,还包含一个包清单文件(package manifest file)。这个manifest文件告诉Unity怎样在包管理器窗口中显示它的信息页 和 怎样去在项目中安装这个package。

此外,它也包含另外几个文件,帮助包的部署,包括: the tests, the samples, the license, the changelog,还有文档。

Manifests

有两类manifest文件:project manifests (manifest.json)和package manifests (package.json)。两者都使用JSON语法和包管理器(Package Manager)沟通,前者描述当前项目有哪此可用的包,后者描述当前包里面有什么。

Project manifests

Project manifests (manifest.json)告诉包管理器当前项目可以使哪些包的哪些版本。

Project manifests 支持下面这些值:

key JSON Type Description
dependencies Object Package Manger要加载的包列表。

下面是一个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把project manifest文件存放在[your_project_root_folder]/Packages/manifest.json

Package manifests

Package manifests (package.json)用来决定加载哪个版本的package,在Package Manager Window中显示什么信息。

Package manifests支持以下值:

Key JSON Type Description
name String 正式注册的包名,遵守以下命名规则:"com.unity.[your package name]"。例如, "com.unity.resourcemanager"
displayName String 在包管理器中显示的包名。例如,"Resource Manager"
version String 包的版本"MAJOR.MINOR.PATCH"。Unity的packages遵循Semantic Versioning系统。例如,"1.3.0"
unity String 支持这个包的Unity版本。例如,"2018.1"表明Unity 2018.1以上的版本才能使用
description String 包的简要说明
keywords Array of Strings 用于在包管理器中搜索的关键词,用JSON array表示。例如,["Physics", "RigidBody", "Component"]
category String 包所属的分类(category)。例如,"Forces"
dependencies Ojbect 此包依赖的包的列表。

下面是一个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把package manifest存储在[your_package_root_folder]/package.json

The Package Registry 包注册表

Unity维护着一个可供分发的正式包的中央注册表(central registry)。当Unity加载时,包管理器和注册表通信,检查project manifest 文件,在包管理器窗口中显示每个可用包的状态。

当你从项目中移除一个package时,包管理器更新project manifest以在In Project模式的列表中排除它。

当你安装或更新一个package时,包管理器为从登记处下载这个package。

Technical details 技术细节

Requirements 要求

要求Unity 2018.1以后的版本。

Known limitations 已知的限制

如果你手动编辑manifest.json文件,包管理器窗口不会刷新packages列表。你需要重新打开窗口或者在In ProjectAll模式间进行切换,以强制更新。

参考:

  1. Unity Package Manager

首发于我的知乎专栏:https://zhuanlan.zhihu.com/p/70123645

Unity Package Manager的更多相关文章

  1. Unity Package Manager Error的解决方案

    问题来源 启动Unity时显示 fail to start Unity Package Manager,软件环境为 Unity 2017.3.0f3. 解决方案 根据网上所给的方案,我选择添加环境变量 ...

  2. 【Unity】 关于Package Manager 无限加载的问题(Loading Packages),以及可能的解决办法(待补充。)

    ·版本:2019.1.8f 官方论坛对于此问题的讨论:地址>Package Manager 许多人都遇到了这个问题,但是无法定位问题出在哪里.官方技术人员提供了一个名为 Package Mana ...

  3. 【Untiy】完美解决Untiy Package Manager无限加载的问题

    直接上干货 打开记事本,复制一下zhei个 @echo offset HTTP_PROXY=127.0.0.1set HTTPS_PROXY=127.0.0.1start "" & ...

  4. 你需要知道的包管理器(Package Manager)

    最近我花了一点时间关注了在不同系统之中所用到的包管理器(Package Manager) .最开始的时候,我是在使用Linux操作系统时,对这种工具以及它背后的想法深深迷恋住了:这真是自由的软件世界. ...

  5. 解决VS2015启动时Package manager console崩溃的问题 - Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope

    安装VS2015,启动以后,Package manager console崩溃,错误信息如下: Windows PowerShell updated your execution policy suc ...

  6. Visual Studio 2015 新建MVC项目 Package Manager Console不能使用 (HRESULT: 0x80131500)

    Visual studio 2015 突然新建不了MVC项目,报出错误: HRESULT: 0x80131500 在折腾了很长时间,最后在Github上看到这样一个贴 地址:https://githu ...

  7. Error: Could not access the Package Manager. Is the system running?

    最近在搭建cordova,android 开发环境,安装android studio之后创建一个demo之后,运行想看一下效果,在运行过程中创建一个虚拟机(arm)的,等了有1分钟左右,再次运行程序, ...

  8. Visual Studio 2010 更新NuGet Package Manager出错解决办法

    在Visual Studio 2010的扩展管理器中发现NuGet Package Manger有最新版本更新提示,选择更新安装提示以下错误信息: 2013/4/25 1:11:48 - Micros ...

  9. Getting and installing the PEAR package manager

    Windows After you have downloaded and installed PHP, you have to manually execute the batch file loc ...

随机推荐

  1. synchronized的底层原理?

    最近更新的XX必备系列适合直接背答案,不深究,不喜勿喷. 你能说简单说一下synchronize吗? 可别真简单一句话就说完了呀~ 参考回答: synchronize是java中的关键字,可以用来修饰 ...

  2. Mybatis log plugin 破解!!!

    前言 今天重新装了IDEA2020,顺带重装了一些插件,毕竟这些插件都是习惯一直在用,其中一款就是Mybatis Log plugin,按照往常的思路,在IDEA插件市场搜索安装,艹,眼睛一瞟,竟然收 ...

  3. Spring Cloud Alibaba 初体验(一) Nacos 配置中心

    一.Nacos 下载与初始化配置 本文使用1.2.0,下载地址:https://github.com/alibaba/nacos/releases Nacos 单机模式支持持久化配置到 MySQL 数 ...

  4. 不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8

    不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8 简介:为什么要强调 书写规范 ?这其实并不关乎"美丑",而是为了 更高的效率(代码阅读.开发.维护 ...

  5. go语言小知识点

    fmt包相关 fmt包主要是实现了格式化的I/O函数 fmt.Println()   行打印 fmt.Printf() 格式化输出 %d int %s str %t type,类型 %p 内存地址 % ...

  6. 第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执行顺序及参数关系案例详解

    上节介绍了__new__()方法这个比构造方法还重要的方法的语法,本节通过案例来详细剖析__new__()方法的细节以及它与构造方法之间的关系. 一.    案例说明 本节以圆Cir类为例来说明,为了 ...

  7. PyQt(Python+Qt)学习随笔:clicked和clicked(bool)信号连接同名函数出现的问题

    在Qt中,控件中的clicked()信号和clicked(bool)信号是两个不同的信号,映射槽函数时,clicked()信号映射到的槽函数是不带参的,clicked(bool)信号映射到的槽函数是带 ...

  8. 关于RequestParam在不同的Spring版本上,接口在controller重载时注解可能失效的踩坑记录

    先抛背景: 我项目中的Spring版本是2.0.3.RELEASE. api-demo负责暴露接口,service-demo负责实现功能.接口参数的@RequestParam和@RequestBody ...

  9. 学习tcp和udp

    tcp和udp的差别 tcp和udp是不一样的 tcp是一个可靠的连接,如果发出一个tcp请求,那么就一定要回复一个请求 而udp是不需要回复的,就像QQ一样,只要发过来就可以了,不管别人在不在线,发 ...

  10. 团队作业5_测试与发布(Alpha版本)

    Alpha版本测试报告 1.测试找出的bug(N个): (1)修复的Bug:很多个,主要是一些疏忽造成的,比如请求url写错导致数据加载不了.比较有意义的bug是因为使用redux,但是用户刷新后数据 ...