Version: 2023.1
言語: 日本語
パッケージのサンプルの作成
バージョン管理

パッケージマニフェスト

Unity はパッケージ マニフェストファイル (package.json) を使用して、特定のパッケージの特定のバージョンに関する情報を管理します。パッケージマニフェストは常にパッケージのルートにあり、登録名とバージョン番号などのパッケージに関する重要な情報を保持しています。

パッケージマニフェストは、以下のようなユーザーに伝えるべき有用な情報も定義されています。

  • UI に表示されるユーザーわかりやすい名前
  • バケットの簡潔な説明
  • パッケージが対応する Unity エディターの最も古いバージョン

パッケージマニフェストは JSON (JavaScript Object Notation) 構文を使用してパッケージに含まれるものを記述します。ファイル形式は npmpackage.json 形式に似ていますが、一部のプロパティには異なるセマンティクスを使用します。サンプルパッケージマニフェストファイルについては、 を参照してください。

Package Manager はこのマニフェストを読み取り、 パッケージの内容、 パッケージの解凍方法、Package Manager ウィンドウでユーザーに表示する情報を見つけます。マニフェストはこの情報を一連の 必須推奨任意 のプロパティとして保存します。

必須プロパティ

これらのプロパティが存在しない場合は、公開するときにレジストリがパッケージを拒否するか、Package Manager がパッケージを見つけたりロードすることができません。

プロパティ JSON 型 説明 
name 文字列 逆ドメイン名表記を使用する Unity Package Manager の命名規則に準拠する一意の識別子。命名規則の詳細については、パッケージの命名 を参照してください。

ノート: name 識別子は Package Manager ウィンドウのリストビューに表示される ユーザーにわかりやすい名前 と異なります。
version 文字列 パッケージのバージョン番号 (MAJOR.MINOR.PATCH)。

例えば、“3.2.1” は 3 番目のメジャーリリースの 2 番目のマイナーリリースで最初のパッチであることを示しています。

この値は セマンティックバージョニング に準拠する必要があります。詳しくは、バージョン管理 を参照してください。

推奨プロパティ

Package Manager は、推奨されるプロパティが有効な値を持っていなかったり、欠けている場合でも、プロジェクトにパッケージをインストールすることができます。

しかし、推奨されるもっとも効率的な方法は、パッケージが発見可能であることを保証し、ユーザーにより良い体験を提供するために、これらのプロパティに値を割り当てることです。

プロパティ JSON 型 説明 
description 文字列 パッケージの簡単な説明。これは、Package Manager ウィンドウの 詳細ビュー に表示されるテキストです。このフィールドは、UTF–8 文字コードをサポートします。つまり、改行 (\n) や箇条書き (\u25AA) などの特殊な形式の文字コードを使用できます。
displayName 文字列 Unity エディター (例えば、Project ブラウザー、Package Manager ウィンドウなど) に表示されるユーザーに分かりやすい名前。

例えば、Unity TimelineProBuilderIn App Purchasing
unity 文字列 パッケージが互換性を持つ最低の Unity バージョンを示します。これを設定しないと、そのパッケージはすべての Unity バージョンと互換性があるとみなされます。

書式は、 “<MAJOR>.<MINOR>” (例えば 2018.3)。特定のパッチを示すには、unityRelease プロパティを使用します。

ノート: Unity に互換性がないパッケージは、Package Manager ウィンドウに表示されません。

任意プロパティ

これらのプロパティは任意であり、省略することができます。ただし、設定する場合は、有効な値である必要があります。

プロパティ JSON 型 説明 
author オブジェクトまたは文字列 パッケージの作者。

このプロパティには、name という必須フィールドが 1 つと、emailurl という任意のフィールドが 2 つあります。

これらのフィールドは、JSON オブジェクトとして指定することも、author をキーとする 1 つの文字列にまとめることもできます。

オブジェクトの例:
{
   "name" : "John Doe",
   "email" : "john.doe@example.com",
   "url" : "http://john.doe.example.com/"
}

文字列の例:
"John Doe <john.doe@example.com> (http://john.doe.example.com/)"
changelogUrl 文字列 URL で指定したパッケージの変更ログのカスタムの保存場所。以下はその例。
"changelogUrl":"https://example.com/changelog.html"

ノート: Package Manager が URL の場所に到達できない場合 (ネットワークの問題など) は、以下を行います。

- パッケージがインストールされている場合、ファイルブラウザーを開き、パッケージキャッシュ内の CHANGELOG.md ファイルを表示します。
- パッケージがインストールされていない場合、Package Manager はオフラインの変更ログが利用できないという警告を表示します。
dependencies オブジェクト パッケージの依存関係のマップ。キーはパッケージ名で、値は特定のバージョンです。それらは、このパッケージが依存する他のパッケージを識別します。

ノート: Package Manager は範囲の構文をサポートせず、 SemVer バージョンのみをサポートします。
documentationUrl 文字列 URL で指定したパッケージのドキュメントのカスタムの保存場所。以下はその例。
"documentationUrl": "https://example.com/"

ノート: Package Manager が URL の場所に到達できない場合 (ネットワークの問題など) は、以下を行います。

- パッケージがインストールされている場合、ファイルブラウザーを開き、パッケージキャッシュ内の Documentation~ フォルダーを表示します。
- パッケージがインストールされていない場合、Package Manager はオフラインドキュメントが利用できないという警告を表示します。
hideInEditor ブーリアン デフォルトでは、パッケージのアセットは Project ウィンドウでは非表示になり、Inspector ウィンドウの Object Picker を使用する際、結果からは除外されます。このプロパティを “false” に設定すると、このパッケージのアセットが常に表示されるようになります。
keywords 文字列の配列 Package Manager の検索 API によって使用されるキーワードの配列。これは、ユーザーが関連するパッケージを見つけるのに役立ちます。
license 文字列 SPDX 識別子形式 を使用した OSS ライセンスの識別子、または “See LICENSE.md file” のような文字列。

ノート: パッケージマニフェストでこのプロパティを省略すると、パッケージには LICENSE.md ファイルを加える必要があります。
licensesUrl 文字列 URL で指定したパッケージのライセンス情報の保存場所。以下はその例。
"licensesUrl": "https://example.com/licensing.html"

ノート: Package Manager が URL の場所に到達できない場合 (ネットワークの問題など) は、以下を行います。

- パッケージがインストールされている場合、ファイルブラウザーを開き、パッケージキャッシュ内の LICENSE.md ファイルを表示します。
- パッケージがインストールされていない場合、Package Manager はオフラインライセンス情報が利用できないという警告を表示します。
samples オブジェクトの配列 パッケージに含まれるサンプルのリスト。各サンプルには、表示名、説明、Samples~ フォルダー自体から始まるサンプルフォルダーへのパスが含まれています。

{
   "displayName": "<name-to-appear-in-the-UI>",
   "description": "<brief-description>",
   "path": "Samples~/<sample-subfolder>"
}

詳しい説明は、パッケージ用のサンプルの作成 を参照してください。
type 文字列 Package Manager に追加情報を与える定数。

内部使用のために予約されています。
unityRelease 文字列 パッケージに互換性のある特定の Unity のリリースを示す Unity バージョンの一部。このプロパティは、更新されたパッケージが Unity のアルファ/ベータの開発サイクルで行われた変更を必要とする場合に使用できます。例えば、新しく導入された API が必要な場合や、API アップデーター のルールなしに後方互換性のない方法で変更された既存の API を使用している場合などが該当します。

予想される形式は“<UPDATE><RELEASE>” (例えば 0b4)。

ノート: 推奨される unity プロパティを省略しても、特に影響はありません。

Unity に互換性がないパッケージは、Package Manager ウィンドウ に表示されません。

パッケージマニフェストの例

{
  "name": "com.[company-name].[package-name]",
  "version": "1.2.3",
  "displayName": "Package Example",
  "description": "This is an example package",
  "unity": "2019.1",
  "unityRelease": "0b5",
  "documentationUrl": "https://example.com/",
  "changelogUrl": "https://example.com/changelog.html",
  "licensesUrl": "https://example.com/licensing.html",
  "dependencies": {
    "com.[company-name].some-package": "1.0.0",
    "com.[company-name].other-package": "2.0.0"
 },
 "keywords": [
    "keyword1",
    "keyword2",
    "keyword3"
  ],
  "author": {
    "name": "Unity",
    "email": "unity@example.com",
    "url": "https://www.unity3d.com"
  }
}

その他の参考資料

パッケージのサンプルの作成
バージョン管理