Version: 2019.4
プロジェクトマニフェスト
埋め込まれた依存関係

依存関係

プロジェクトマニフェストの dependencies 属性は JSON オブジェクトで、 パッケージ名をバージョンにマップします。バージョン番号は、 パッケージレジストリからダウンロードするパッケージのバージョンを示します。以下はその例です。

{
  "dependencies": {
    "com.my-package": "2.3.1",
    "com.my-other-package": "1.0.1-preview.1",
       etc.
  }
}

バージョン番号の使用に加えて、パッケージマネージャーは以下を使ってプロジェクト依存関係の追加をサポートします。

直接的な依存関係と間接的な依存関係

直接 依存はプロジェクトレベルの依存です。Package Manager ウィンドウからパッケージをインストールするか、プロジェクトの manifest.json ファイルを手動で編集して明示的に依存関係を追加すると、直接的なパッケージの依存関係を作成します。()

直接的な依存関係 (A): プロジェクトマニフェストからのパッケージリクエスト
直接的な依存関係 (A): プロジェクトマニフェストからのパッケージリクエスト

パッケージは、他のパッケージに対して独自の依存関係を宣言できます。このような依存関係は、他のパッケージをインストールするときに、プロジェクトの 間接的、推移的な依存関係になります。()

間接的な依存関係 (B): 別のパッケージのマニフェストからのパッケージリクエスト
間接的な依存関係 (B): 別のパッケージのマニフェストからのパッケージリクエスト

Package Manager は、どのような依存関係かに関係なく、インストールする各パッケージのバージョンを決定します。どのように行われているかというと、直接の依存関係を間接的な依存関係よりも優先します (より優先度の高いバージョンが他の要件に違反していない限り)。

この評価は 依存関係の解決 と呼ばれ、おおよそ以下のロジックに従います。

  1. 直接的依存関係のバージョンを選択します。
  2. 直接的依存関係がなく、これが ビルトインパッケージ バージョンである場合は、 ビルトインのバージョンを選択します。
  3. 直接的依存関係がなく、これがビルトインバージョンでない場合は、これが複数のパッケージの間接的依存関係であるかどうかを確認します。
    • これがプロジェクト内の 1 つのパッケージのみの間接的依存関係である場合は競合が発生しないため、これらの内、より高いバージョンを選択します。
      • この間接的な依存関係のバージョン
      • Unity に最低限必要なバージョン
    • 複数の間接的な依存関係が発生した場合、間接的依存関係が複数のバージョンをリクエストすると競合を作成することがあります。Package Manager は自動競合解決でほとんどの競合を解決できます。

どのような場合であっても、手動でこれらの解決方法をオーバーライドできます 。これを行うには、プロジェクトマニフェストで特定のバージョンをリクエストします (Package Manager ウィンドウからインストールするか、 マニフェストを直接編集します)。これにより、直接的な依存関係が作成され、他の解決方法よりも優先されます。

プロジェクトマニフェスト
埋め込まれた依存関係