Unity がプロジェクトをロードするときに、Unity Package Manager はプロジェクトマニフェストを読み込み、ロードするパッケージのリストを計算します。 ユーザーがPackage Manager ウィンドウからパッケージをインストールまたはアンインストールすると、Package Manager はそれらの変更をプロジェクトマニフェストファイルに保存します。プロジェクトマニフェストファイルは依存関係のオブジェクトを通してパッケージのリストを管理します。
さらに、プロジェクトマニフェストは Package Manager の設定ファイルとして機能し、1 つ以上のパッケージレジストリの場所を格納します。Git パッケージの場合は、コミットハッシュとリビジョン番号を定義するロックオブジェクトも提供し、Package Manager が常に同じ依存関係をインストールすることを保証します。
manifest.json
というプロジェクトマニフェストファイルは Unity プロジェクトのルートフォルダー下の Packages
フォルダー内にあります。パッケージマニフェストファイルと同様に、プロジェクトマニフェストファイルは JSON (JavaScript Object Notation) 構文を使用します。
すべての属性は必須ではありません。ただし、プロジェクトマニフェストファイルに値がまったく含まれていない場合、Package Manager ウィンドウは起動せず、Package Manager はパッケージをロードしません。
ヒント: Unity のメイン Help メニューから Reset packages to defaults を選択することで、いつでもレジストリの問題を修正することができます。ただし、これを行うと、プロジェクト内のパッケージに加えたすべての変更がリセットされるため、最後の手段としてこの方法を使用するのが最善です。
キー | JSON 型 | 説明 |
---|---|---|
dependencies | オブジェクト | プロジェクトで利用可能なパッケージのリスト。マニフェストのこのエントリは、マップ構造を使用して、プロジェクトに必要なバージョンに関連付けられたパッケージ名を列挙します。 サポートされているすべてのスキームの詳細な概要については、依存関係のセクションを参照してください。 ノート: このリストには、間接的な依存関係 (他のパッケージが必要とするパッケージ) は含まれていません。 |
registry | 文字列 | Unity Package Manager のメインレジストリの URL。これにより、デフォルトのレジストリ URL (https://packages.unity.com ) がオーバーライドされます。ノート: デフォルトのレジストリを独自のレジストリでオーバーライドすると、公式の Unity のパッケージにアクセスできなくなります。代わりに、独自のパッケージのプライベートコレクションを Unity パッケージライブラリに加えて拡張したい場合は、scopedRegistries 属性を設定してスコープ付きレジストリを使用します 。 |
scopedRegistries | オブジェクトの配列 | デフォルトのレジストリに加えて、カスタムのレジストリを指定します。これにより、独自のパッケージをホストすることができます。 詳細はスコープ付きレジストリを参照してください。 |
lock | オブジェクト | コミットハッシュと選択したリビジョンを持つ Git パッケージを示します。Package Manager はこの属性を自動的に更新します。これにより、Package Manager がまったく同じ依存関係をインストールすることを保証します。 この属性は Git パッケージ用に予約されていますが、将来、他の機能が決定論的なパッケージバージョン解決を保証するために使用する可能性があります。 |
testables | 文字列の配列 | Unity Test Runner に加えたいパッケージ名を列挙します 。詳細は、パッケージにテストを追加を参照してください。 |
{
"registry": "https://my.registry.com",
"scopedRegistries": [{
"name": "My internal registry",
"url": "https://my.internal.registry.com",
"scopes": [
"com.company"
]
}],
"dependencies": {
"com.unity.package-1": "1.0.0",
"com.unity.package-2": "2.0.0",
"com.unity.package-3": "3.0.0",
"com.unity.my-local-package": "file:/path/to/com.unity.my-local-package",
"com.unity.my-git-package": "https://my.repository/my-package.git#v1.2.3"
},
"lock": {
"com.unity.my-git-package": {
"hash": "9e72f9d5a6a3dadc38d813d8399e1b0e86781a49",
"revision": "v1.2.3"
}
},
"testables": [ "com.unity.package-1", "com.unity.package-2" ]
}