Unity Package Manager はパッケージのコンテンツとメタデータをダウンロードすると、グローバルキャッシュに保存します。これにより、パッケージの再利用や共有をより効率的に行い、オフラインでも保存されたパッケージをインストールして更新することができます。
デフォルトでは、Unity はグローバルキャッシュをルートディレクトリに保存します。ルートディレクトリは、オペレーティングシステムに依存します (Windows の場合はユーザーアカウントの種類にもよります)。
| オペレーティングシステム | デフォルトルートディレクトリ | 
|---|---|
| Windows (ユーザーアカウント) | %LOCALAPPDATA%\Unity\cache | 
| Windows (システムユーザーアカウント) | %ALLUSERSPROFILE%\Unity\cache | 
| macOS | $HOME/Library/Unity/cache | 
| Linux | $HOME/.config/unity3d/cache | 
Tip: To override the location of this root directory, you can either set the UPM_CACHE_ROOT environment variable or update the cacheRoot property in a configuration file. See Customizing the shared cache locations for more information.
Package Manager は 2 つの異なる共有キャッシュを使用しており、それぞれが異なる目的を果たしています。これらは上記の保存場所フォルダー配下のサブディレクトリに格納されています。
| サブフォルダー | 説明 | 
|---|---|
| npm | npm プロトコルを使ってレジストリから取得したデータを保存します。これには、パッケージのメタデータとパッケージの .tgz ファイル が含まれます。 | 
| packages | このキャッシュには、レジストリから取得した .tgz ファイルの圧縮されていないコンテンツが含まれています。 | 
これらのサブフォルダの中には、それぞれのレジストリが独自のパスを持っています。そのため、異なるレジストリでホストされているパッケージが混ざらないようになっています。
ヒント: 環境変数を使って、これらのフォルダーの場所を上書きすることができます。詳しくは共有キャッシュ保存場所のカスタマイズ を参照してください。
Unity エディターのプロセスを実行するユーザーアカウントは、ルートディレクトリとそのコンテンツに対する完全な書き込み権限を持っていなければなりません。これらの権限がないと、Package Manager はパッケージのメタデータとコンテンツをダウンロードしてキャッシュに保存することができません。