Version: 2019.4
Unity の Package Manager
グローバルキャッシュ

概念

ここでは、Unity Package Manager の機能に関する多くの概念について説明します。

バージョン

各パッケージには複数のバージョンがあり、ライフサイクルに沿ってそのパッケージに変更が加えられます。開発者がパッケージを更新するたびに、新しいバージョン番号が与えられます。パッケージバージョンの変更は、 セマンティックバージョニングにしたがって、破壊的変更 (メジャー)、新しい後方互換性機能 (マイナー)、バグ修正のみ (パッチ) のいずれであるかを示します。

特定のパッケージで使用可能なバージョンのリストを見るには、特定のバージョンの検索を参照してください。

マニフェスト

マニフェストファイルには 2 つのタイプがあります。

  • プロジェクトマニフェスト (manifest.json) は、Package Manager が正しいパッケージ (依存関係として宣言したパッケージやバージョンのリストなど) を見つけて読み込むために必要な情報を格納します。
  • パッケージマニフェスト (package.json) は、特定のパッケージに関する情報と、そのパッケージが必要とするパッケージとバージョンのリストを格納します。

どちらのファイルも JSON(JavaScript Object Notation) 構文を使用します。

レジストリ

Unity には配布可能な公式パッケージの中核的なレジストリがあります。 パッケージ レジストリは、各パッケージバージョンのパッケージコンテンツと情報 (メタデータ) を格納します。デフォルトで、すべてのプロジェクトは公式の Unity パッケージ レジストリを使用します。ただし、個人用のパッケージや開発中のステージパッケージを格納して配布するために、追加のレジストリを加えることができます。

パッケージ管理

Unity Package Manager はパッケージシステム全体を管理するツールです。主なタスクは以下のとおりです。

  • Unity レジストリや指定する追加のレジストリと通信します。
  • プロジェクトマニフェストを読み込み、 パッケージのコンテンツとメタデータを取得します 。
  • パッケージがプロジェクトの依存関係であるか、インストールされているパッケージの 1 つであるかにかかわらず、パッケージのインストール、アップグレード、アンインストールを行います。
  • Unity のビルトインパッケージを有効/無効にします。
  • パッケージのすべてのバージョンに関する情報を表示します。
  • プロジェクトとそのパッケージに複数のパッケージバージョンが必要な場合に、競合を解決します。

Unity Package Manager は、サンプル、ツール、アセットを特定のマシンやデバイスのすべてのプロジェクトにインストールするのではなく、プロジェクトごとにインストールします。ダウンロードしたパッケージのメタデータとコンテンツを保存するためにグローバルキャッシュを使用します。いったんインストールすると、Unity は、パッケージアセットをプロジェクト内の他のアセットと同じように扱います。ただし、これらのアセットはパッケージフォルダー内に格納され、変更不可能 です。一方で,ローカル埋め込みのパッケージソースのコンテンツにのみ、永続的な変更を加えることができます。

パッケージの状態とライフサイクル

パッケージを開発後、Unity のユーザーがテストしてフィードバックする準備ができるまで、パッケージはプレビュー状態になります。この状態のパッケージは通常、 preview ラベル付きで Unity エディターに表示され、しばしば previewバージョン表記の一部として使用します。

Unity のリリース管理は、いくつかのテスト段階と検証手順を通過した後にのみ、パッケージに検証済みステータスを与えます。これには、適切なドキュメント、変更ログ、ライセンスファイルの確認も含まれます。この状態のパッケージは、Unity エディターに 2019.3 verified ラベルで表示され、 バージョンの表示に preview を使用することはありません。

パッケージ開発者がパッケージに変更や破壊的変更を加える場合 (API を壊したりその使用へ影響を与える変更によって)、パッケージはプレビュー状態に戻り、Package Manager は、新しいプレビューパッケージを、更新可能な検証済みバージョンとして示しません。

Unity Package Manager を使ったパッケージライフサイクル
Unity Package Manager を使ったパッケージライフサイクル

状態は、 パッケージが開発サイクルのどこにあるかを示します。

状態 説明
In Development (開発中) パッケージ開発者がパッケージを作成中です。通常、これはパッケージが開発者のプロジェクトに埋め込まれている状態に相当します。
Preview (プレビュー) パッケージをテストする準備ができたら、Unity パッケージの開発者は、基本的なテストをしていること、パッケージがパッケージ検証スイートのテストに合格することを確認します。また、Unity パッケージの開発者が Unity の公式レジストリにパッケージ公開の申請を行う前に、パッケージには少なくともドキュメントの草稿、更新された変更ログ、ライセンスが必要です。

この時点でパッケージはテスト用に公開可能で、該当する Unity ユーザーなら誰でも開発者にフィードバックを提供することができます。ほとんどのパッケージは Unity ユーザーであれば誰でも利用できますが、一部のパッケージは特定の権限を持つ Unity ID に制限されます。

プレビューパッケージは、特定のバージョンの Unity で検証できるようになるまでに、多くの変更を経ることがあります。将来のある時点で、それらは検証の要件を満たすかもしれませんが、代わりに廃止になるかもしれません。将来のサポートを保証するものではないので、本番環境でプレビューパッケージを使わないようにしてください。このバージョンで利用可能なプレビューパッケージのリストは、プレビューパッケージを参照してください。
Verified (検証済み) このパッケージは厳しいテストを受けており、この特定のバージョンの Unity と、同じバージョンで検証された他のすべてのパッケージで安全に動作することが確認されています。この状態は、Unity が内部で開発しているパッケージのみを対象としています。サードパーティのプロセスについて確認するには、そのパッケージ開発者に問い合わせてください。

パッケージが Unity の任意のバージョンで検証されると、検証されたパッケージはそのバージョンの長期サポート期間中、サポートが保証され、メジャーアップデートもマイナーアップデート (API の破壊的変更や API の変更など) も許可されません。Unity の各新バージョンで、Package Manager が検証済みとみなすには、各検証済みパッケージは再度検証プロセスを通過しなければなりません。

このバージョンの Unity で検証されたパッケージのリストを見るには、検証済みパッケージを参照してください。

注意: パッケージの中には、検証済みでもなければプレビューでもないパッケージがあります。多くの場合、これはパッケージが以前のバージョンの Unity で検証されていたにもかかわらず、現在のバージョンではまだ検証プロセスが完了していないためです。いくつかのパッケージでは、使用しても安全だと判断されたために Unity Package Manager のレジストリに公開されたにもかかわらず、検証されなかったものもあります。これらのケースでは、パッケージは本番で使用しても安全です。

Package Manager ウィンドウに 、これらの状態の一部に対応するタグが表示されます。

パッケージソース

ソースには、 パッケージの出所が記載されています。

ソース 説明
レジストリ Unity Package Manager がリクエストを受けると、ほとんどのパッケージをパッケージレジストリからコンピューターのグローバルキャッシュにダウンロードします。これらのパッケージは変更不可能です。そのため、プロジェクトで使用することはできますが、パッケージの変更やパッケージマニフェストの変更はできません。
ビルトイン これらのパッケージを使用すると、Unityの機能( Terrain (地形) Physics、アニメーションなど)を有効または無効にできます。それらは不変です。詳細については、 ビルトインパッケージを参照してください。
埋め込み プロジェクトフォルダー内に格納されているパッケージは、すべて埋み込まれています。このソースは 開発中 の状態に当たります。なぜなら、通常、 パッケージの開発を開始するときに、新しいパッケージに必要なすべてのスクリプト、ライブラリ、サンプル、その他のアセットをプロジェクトフォルダーの下のフォルダーに保存します。
ローカル コンピューター上の任意のフォルダーからパッケージをインストールできます (例えば、ローカルで開発リポジトリをクローンする場合)。
Local tarball コンピューターの .tgz ファイルからパッケージをインストールできます。 Package Manager は .tgz ファイルからパッケージを抽出し、キャッシュに格納します。ただし、ローカルフォルダーからのインストールとは異なり、これらのパッケージは変更不可能です。
Git Package Manager は、 レジストリサーバーからではなく、Git リポジトリから直接 Git パッケージをインストールします。

パッケージマニフェストを編集するには、パッケージの検査 を参照してください。

Package Manager ウィンドウに 、これらの状態の一部に対応するタグが表示されます。詳しい情報は、Tags を参照してください。

Unity の Package Manager
グローバルキャッシュ