Unity 包清單

2020-10-28 14:07 更新

Unity 使用包清單文件 (package.json) 來管理有關(guān)特定包的特定版本的信息。包清單始終位于包的根目錄,并且包含有關(guān)包的重要信息,例如其注冊名稱和版本號。包清單還定義了與用戶通信的有用信息,例如出現(xiàn)在 UI 中的用戶友好名稱、包的簡要說明以及該包兼容的最低 Unity 版本。

包清單使用 JSON(JavaScript 對象表示法)語法來描述包中包含的內(nèi)容。該文件的格式類似于 npmpackage.json 格式,但是其某些屬性使用了不同的語義。

Package Manager 讀取此清單以確認包中包含的內(nèi)容,如何解壓縮其內(nèi)容,以及在 Package Manager 窗口中向用戶顯示哪些信息。清單將此信息存儲在一系列必需、強制和可選屬性中。

必需屬性

這些屬性是必需的。如果不存在這些屬性,則注冊表在發(fā)布包時會拒絕該包,或者 Package Manager 無法獲取或加載該包。

屬性 JSON 類型 描述
name String 官方注冊的包名稱。此名稱必須遵循 Unity Package Manager 命名約定,也就是使用反向域名表示法。  名稱必須滿足以下條件: - 以 com.<公司名稱> 開頭。 - 若要在 Editor 中顯示,長度不得超過 50 個字符;如果無需在 Editor 中顯示,則不得超過 214 個字符。 - 僅包含小寫字母、數(shù)字、連字符 (-)、下劃線 (_) 和句點 (.)。 - 要指示嵌套的命名空間,請為命名空間添加一個句點作為后綴。  例如,com.unity.timeline 是實現(xiàn) Unity Timeline 的包的名稱。  注意:這是一個唯一標識符,而不是出現(xiàn)在 Package Manager 窗口的列表視圖中的用戶友好名稱。
version string 包版本號 (MAJOR.MINOR.PATCH)。  例如,“3.2.1”表示這是第 3 個主要發(fā)行版、第 2 個次要發(fā)行版和第 1 個補丁。  該值必須遵守語義版本控制。有關(guān)更多信息,請參閱版本控制。

強制屬性

這些屬性在技術(shù)上是可選的,即使它們不包含有效值或者缺失,Package Manager 仍可以將它們裝入到項目中。但是,您應(yīng)該為這些屬性值提供值,以使您的包易于發(fā)現(xiàn),并為包使用者提供更好的體驗。

屬性 JSON 類型 描述
displayName String 一個顯示在 Unity Editor 中的用戶友好名稱(例如,顯示在 Project Browser 中、Package Manager 窗口中,等等)。  例如,Unity Timeline、ProBuilder 或 In App Purchasing。
description String 包的簡要描述。這是在 Package Manager 窗口的詳細信息視圖中顯示的文本。支持任何 UTF–8 字符代碼。這意味著您可以使用特殊格式的字符代碼,例如換行符 (\n) 和項目符號 (\u25AA)。
unity String 指示包兼容的最低 Unity 版本。如果省略,則認為該包與所有 Unity 版本兼容。  預(yù)期格式為“<主要版本>.<次要版本>”(例如,2018.3)。要指向特定補丁,還要使用 unityRelease 屬性。  注意:與 Unity 不兼容的包將不會出現(xiàn)在 Package Manager 窗口中。

可選屬性

這些屬性是可選的,這意味著您可以省略它們。但如果存在,則必須具有有效值。

屬性 JSON 類型 描述
unityRelease String Unity 版本的一部分,指示與包兼容的特定 Unity 版本。當更新的包需要在 Unity alpha/beta 開發(fā)周期中進行更改時(例如,如果該包需要新引入的 API,或該包使用的現(xiàn)有 API 以非向后兼容方式進行更改而不遵循 API Updater 規(guī)則),則可以使用此屬性。  預(yù)期格式為“<更新><發(fā)行版本>”(例如 0b4)。  注意:如果省略 unity 屬性,則此屬性沒有效果。  與 Unity 不兼容的包不會出現(xiàn)在 Package Manager 窗口中。
dependencies 對象 包依賴關(guān)系映射。鍵是包名稱,值是特定版本。它們指示此包依賴的其他包。  注意:Package Manager 不支持范圍語法,僅支持 SemVer 版本。
keywords 字符串數(shù)組 Package Manager 搜索 API 使用的關(guān)鍵字數(shù)組。這可以幫助用戶找到相關(guān)的包。
type String 為 Package Manager 提供其他信息的常量。  保留僅供內(nèi)部使用。
author 對象 包的創(chuàng)作者。  該對象包含一個必填字段 (name) 和兩個可選字段 (email) 和 (url)。  例如: { "name" : "John Doe",   "email" : "john.doe@example.com",   "url" : "http://john.doe.example.com/" }

包清單示例

{
  "name": "com.unity.example",
  "version": "1.2.3",
  "displayName": "Package Example",
  "description": "This is an example package",
  "unity": "2019.1",
  "unityRelease": "0b5",
  "dependencies": {
    "com.unity.some-package": "1.0.0",
    "com.unity.other-package": "2.0.0"
 },
 "keywords": [
    "keyword1",
    "keyword2",
    "keyword3"
  ],
  "author": {
    "name": "Unity",
    "email": "unity@example.com",
    "url": "https://www.unity3d.com"
  }
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號