找回密码
 立即注册
查看: 486|回复: 9

Unity Package Manager

[复制链接]
发表于 2021-12-3 06:39 | 显示全部楼层 |阅读模式
(注: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当前版本的信息。



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


一个没有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 安装一个新包




安装一个新包的方法:

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



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

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

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



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

  • 打开包管理器窗口。任何名字后面有下载箭头的包都有可用的更新。
  • 选中你想要更新的packages。
  • 在详细信息面板中点击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 支持下面这些值:


下面是一个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支持以下值:


下面是一个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模式间进行切换,以强制更新。
参考:

  • Unity Package Manager

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-12-3 06:40 | 显示全部楼层
想问下我这里面没有install是什么情况呢
发表于 2021-12-3 06:46 | 显示全部楼层
是不是已经安装过了,有Update或Remove吗?
发表于 2021-12-3 06:49 | 显示全部楼层
应该是assets里面包含,我把一些文件删除后有了,十分感谢,文章内容很全
发表于 2021-12-3 06:52 | 显示全部楼层
The Package Registry 包注册表这个地方能详细讲下吗?我想实现在package发布自定义package然后每个项目都可以选择性的安装或者卸载,网上的教程我看大多数都是只说怎么为单独项目安装的
发表于 2021-12-3 07:00 | 显示全部楼层
等我有空学习一下。。貌似你需要自己搭建一个package server,https://zhuanlan.zhihu.com/p/96785912
发表于 2021-12-3 07:02 | 显示全部楼层
博主您好,请问怎么把package里面的子包导出来?我想把子包导出,发送给别人!
发表于 2021-12-3 07:03 | 显示全部楼层
先把package里的内容导到一个空工程里面,然后把子包相关的文件夹选中,然后右键点击 "Export Package...",把子包相关的内容导成unitypackage。不知道这样能不能满足你的需求?
发表于 2021-12-3 07:11 | 显示全部楼层
你好,我想问问你的动画可以和模型一起导出吗?
发表于 2021-12-3 07:19 | 显示全部楼层
你好,Package是不是功能上相当于一个lib,或者一个插件?
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-23 03:19 , Processed in 0.167550 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表