Unity Package Manager


(注: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM