Unity Package Manager は UPM パッケージをフェッチすると、パッケージのコンテンツとメタデータをグローバルキャッシュに保存します。これにより、パッケージの再利用や共有をより効率的に行い、オフラインでも保存されたパッケージをインストールして更新することができます。
ノート: パッケージをグローバルキャッシュに保存することは、レジストリからフェッチされた UPM パッケージに適用されます。Asset Store から取得した UPM 形式のパッケージもグローバルキャッシュに保存されます。ただし、Asset Store から取得した .unitypackage 形式のアセットパッケージは、グローバルキャッシュには保存されません。Package Manager は、このようなアセットパッケージを別のキャッシュに保存します。詳細については、Asset Store パッケージを参照してください。
デフォルトでは、Unity はグローバルキャッシュをルートディレクトリに保存します。ルートディレクトリは、オペレーティングシステムに依存します (Windows の場合はユーザーアカウントの種類にもよります)。
| OS | デフォルトルートディレクトリ | 例 |
|---|---|---|
| Windows (ユーザーアカウント) | %LOCALAPPDATA%\Unity\cache\upm |
C:\Users\yourname\AppData\Local\Unity\cache\upm |
| Windows (システムユーザーアカウント) | %ALLUSERSPROFILE%\Unity\cache\upm |
C:\ProgramData\Unity\cache\upm |
| macOS | $HOME/Library/Caches/Unity/upm |
/Users/yourname/Library/Caches/Unity/upm |
| Linux | $HOME/.cache/Unity/upm |
/home/yourname/.cache/Unity/upm |
ヒント: このルートディレクトリの場所をオーバーライドできます。詳細は、グローバルキャッシュのカスタマイズを参照してください。
Package Manager のグローバルキャッシュは、それぞれ目的が異なるサブキャッシュを使用しています。Package Manager はこれらのサブキャッシュを、グローバルキャッシュのフォルダー下のサブフォルダーに保存します。
| サブフォルダー | 説明 |
|---|---|
db |
パッケージのコンテンツとメタデータを格納するために使用されるレジストリデータキャッシュ。 |
git-lfs |
Git Large File Storage (LFS) を有効にした場合、ダウンロードした Git LFS ファイルが含まれます。 |
packages (非推奨) |
Unity エディター 2023.2 でプロジェクトを作成した場合は、このサブフォルダーが存在する可能性があります。ただし、Unity 6 以降では、Package Manager はこのサブフォルダーを使用しません。 |
これらのサブフォルダーの中には、それぞれのレジストリが独自のパスを持っています。そのため、異なるレジストリでホストされているパッケージが混在しないようになっています。
ヒント: これらのフォルダーの場所をオーバーライドできます。詳細は、グローバルキャッシュのカスタマイズを参照してください。
Unity エディターのバージョン 2023.2.0f1 から、レジストリデータキャッシュ (db サブフォルダー) のサイズは 10 ギガバイト (GB) に制限されています。この制限に達すると、Package Manager は (パッケージがプロジェクトにインストールされた最も古い日付に基づいて) 最も最近使用されていないコンテンツを消去することで、レジストリデータキャッシュを削除します。つまり、Package Manager によって最初に削除されたパッケージは、最も早くプロジェクトに追加されたパッケージです。ただし、Package Manager はこれらのパッケージをキャッシュから削除しますが、これらのパッケージは、インストールしたプロジェクトには残ります。次にこれらのパッケージを別のプロジェクトに追加すると、Package Manager はキャッシュからではなく、適切なレジストリからそれらをフェッチします。
レジストリデータのキャッシュ制限のサイズをオーバーライドライドできます。詳細は、グローバルキャッシュのカスタマイズを参照してください。
Unity エディターのプロセスを実行するユーザーアカウントは、ルートディレクトリとそのコンテンツに対する完全な書き込み権限を持っていなければなりません。これらの権限がないと、Package Manager はパッケージのメタデータとコンテンツをダウンロードしてキャッシュに保存することができません。