一個包是一個容器,它可以包含各種資源的組合:shader、紋理、插件、圖標、腳本等,可以增強項目的各個部分。相對於Asset Store的包,Package Manager提供了更新,更容易集成的包管理方案,能夠為Unity提供各種增強功能。
使用Unity Package Manager窗口(在Unity的頂部菜單中:Window > Package Manager)查看哪些包可用於安裝或已安裝在你的項目中。另外,你可以使用此窗口為每個項目安裝,[刪除](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@[圖片上傳中…(宣傳海報.png-a5152a-1524275636416-0)]
1.8/manual/index.html#PackManRemove)或更新包。

查找包
默認情況下,包管理器窗口顯示In Project下的包列表,只有安裝在項目中的包才會顯示在列表中。
單擊All按鈕顯示所有可用包。該列表顯示注冊在包注冊表中的所有內容,不管它們是否已經安裝在項目中。

查看包詳細信息
“包管理器”窗口右側的窗格顯示有關所選包的詳細信息。

這些詳細信息包括以下信息:
- (A)顯示名稱
- (B)版本號(和標簽,如果有的話)
- (C)打開包文檔頁面的鏈接
- (D)官方包名稱會以
com.unity開頭 - (E)作者
- (F)安裝或更新狀態
- (G)簡要說明
- (H)按鈕來安裝,刪除或更新包
- (I)包更新日志的鏈接
版本標簽
一些包在版本號旁邊顯示標簽。這些標簽傳達有關該包版本的信息。

包管理器使用以下值:
| 標簽 | 含義 |
|---|---|
verified |
Unity的質量保證團隊已正式確認此包可與編輯器的特定版本配合使用。 |
preview |
該包處於發布周期的早期階段,可能尚未被開發團隊或Unity的質量保證團隊記錄和完全驗證。 |
沒有標簽的包默認是生產環境可以使用的。
查找更多信息
你可以通過查看文檔了解更多關於包的信息。
單擊詳細信息窗格中的查看文檔鏈接:

包文檔頁面將在你的默認瀏覽器中打開。
訪問包管理器窗口
你可以通過包管理器窗口執行各種任務:

安裝一個新包

要安裝一個新包:
- 打開項目管理器窗口並單擊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模式提供,因為它仍在注冊表中。
當你安裝或更新程序包時,程序包管理器會從注冊表中下載程序包。
