Version: Unity 6.0 (6000.0)
言語 : 日本語
グローバルキャッシュ
アセットパッケージのキャッシュの場所のカスタマイズ

グローバルキャッシュのカスタマイズ

Package Manager は、圧縮されたパッケージコンテンツとレジストリメタデータの グローバルキャッシュ を保持します。

グローバルキャッシュは、Package Manager がアセットパッケージ用に保持するキャッシュとは別のキャッシュです。アセットパッケージキャッシュの詳細については、アセットパッケージのキャッシュの場所のカスタマイズ を参照してください。

デフォルトでは、Package Manager のグローバルキャッシュルートには以下のサブディレクトリがあり、各サブキャッシュは異なる目的を果たします。

  • db サブディレクトリは、レジストリデータ (パッケージメタデータと tarball) を格納します。
  • Git LFS (Large File Storage) を有効にした場合、git-lfs サブディレクトリは、ダウンロードされた Git LFS ファイルを格納します。

ノート: Unity エディター 2023.2 でプロジェクトを作成した場合は、グローバルキャッシュに packages サブディレクトリもある場合があります。Unity 6 ベータ版以降、Package Manager はこのサブディレクトリを使用しません。古いバージョンのエディターで作成されたプロジェクトを維持しない場合は、このサブディレクトリを削除できます。

Package Manager は、グローバルキャッシュをデフォルトの場所に保存します。この場所はオーバーライドできます。グローバルキャッシュルートのデフォルトの場所については、グローバルキャッシュ を参照してください。

グローバルキャッシュの場所をオーバーライドする理由は、以下のいくつかが考えられます。

  • 内蔵ドライブのスペースを節約したい。
  • 共有ドライブにキャッシュを保存し、他のユーザーがアクセスできるようにしたい。
  • システムディレクトリに存在しないフォルダーにキャッシュを保存したい。

2023.2.0f1 以降、db サブディレクトリの最大サイズはデフォルトで 10 ギガバイト (GB) です。このサイズはオーバーライドできます。db サブディレクトリの最大サイズをオーバーライドする理由は、以下のいくつかが考えられます。

  • 使用可能なディスクスペースが小さい場合は、最大サイズを減らしてスペースを節約できます。
  • 使用可能なディスクスペースが大きい場合は、最大サイズを増やすことができます。これにより、Package Manager はより多くのデータをキャッシュに保存できるため、パッケージを再ダウンロードする代わりにキャッシュから取得できます。キャッシュされたパッケージはより速くインストールされ、ネットワーク使用量を削減します。

以下の表は、デフォルトプロパティのオーバーライドに使用できるさまざまな方法を示しています。

方法 グローバルキャッシュの場所 db サブディレクトリの最大サイズ その他の注意事項
Preferences ウィンドウ はい いいえ 簡単で永続的なため、推奨される方法です。この方法でパッケージキャッシュの場所を変更すると、Unity は現在と将来の Unity エディターセッションの設定を保存します。
ユーザー設定ファイル はい はい ユーザー設定ファイルでのパッケージキャッシュプロパティのオーバーライドは、現在の Unity エディターセッション後も維持されます。
環境変数 はい はい デフォルトでは、この方法は現在のコマンドプロンプト (またはターミナル) セッションの設定を行いますが、OS の設定で永続的な設定にすることができます。上級ユーザーは、特定のユースケースでセッションベースの変数を好む場合があります。

ノート: Preferences ウィンドウを使用してグローバルキャッシュの場所を設定すると、ユーザー設定ファイルの cacheRoot プロパティも設定されます。ユーザー設定ファイルを手動で設定する場合は、ユーザー設定ファイルの使用 を参照してください。

始める前の重要な注意事項

  • どの方法を選択しても、キャッシュの場所を変更すると、Package Manager は以降、その場所を使用します。Package Manager が元の場所に保存した既存のパッケージは、元のフォルダー構造に残ります。
  • db サブディレクトリの最大サイズを設定し、新しいサイズがそのサブディレクトリの現在のサイズより小さい場合、Package Manager は新しい制限に達するまでコンテンツをキャッシュから排除します。Package Manager は、最も長い間使われていないコンテンツから順に (プロジェクトへのインストール日に基づいて) 削除します。
  • ユーザー設定ファイルを使用すると、変更は現在のユーザーアカウントに適用されます。グローバル設定ファイルは存在しますが、グローバル設定ファイルでキャッシュのオーバーライドを設定することはできません。
  • 異なる方法で複数の値を設定することがどのように作用するか、に影響を与える要因はいくつかあります。
    • 環境変数の方法でキャッシュの場所を変更した場合、Preferences ウィンドウを使用して場所を変更することはできません。
    • 環境変数の設定は、ユーザー設定ファイルや Preferences ウィンドウでの同じ設定の適用より優先されます。
    • レジストリデータキャッシュ (UPM_NPM_CACHE_PATH) または Git LFS キャッシュ (UPM_GIT_LFS_CACHE_PATH) に環境変数を設定する場合、Package Manager は、グローバルキャッシュルートがどこにあるかにかかわらず、環境変数に指定された場所を使用します。
    • パス (UPM_GIT_LFS_CACHE_PATH) を明示的に設定せずに Git LFS キャッシュ (UPM_ENABLE_GIT_LFS_CACHE) を有効にすると、Package Manager は、グローバルキャッシュルートの下にある git-lfs フォルダーをその場所として使用します。

Preferences ウィンドウの使用

Preferences ウィンドウを使用してグローバルキャッシュのデフォルトの場所をオーバーライドするには、以下のステップに従います。

  1. 以下のいずれかの方法で、Preferences ウィンドウを開きます。

    • Preferences (環境設定) の説明に従って、Unity エディターのメニューを使用します。
    • Package Manager ウィンドウを開き、Advanced メニューを開いて、Preferences を選択します。
  2. Package Manager カテゴリを選択します。

  3. Packages の下の Cache Location の横のメニューを開きます。

  4. Change Location を選択します。

  5. グローバルキャッシュの新しい場所を選択します。

Package Manager カテゴリが選択された Preferences ウィンドウ
Package Manager カテゴリが選択された Preferences ウィンドウ

ユーザー設定ファイルの使用

ユーザー設定ファイルを手動で編集して、グローバルキャッシュルートの場所または db サブディレクトリの最大サイズ、あるいはその両方をオーバーライドできます。

ユーザー設定ファイルを編集するには、以下のステップに従います。

  1. .upmconfig.toml ユーザー設定ファイルを見つけます。ファイルの場所を見つけるには、設定ファイル を参照してください。ファイルが存在しない場合は、空のテキストファイルを作成します。

  2. グローバルキャッシュルートの場所をオーバーライドするには、cacheRoot キーを追加し、その値をカスタムの場所への絶対パスとして設定します。重要: TOML ファイルで Windows パスを設定する場合は、フォワードスラッシュ (/) またはダブルバックスラッシュ (\\) を使用します。単独のバックスラッシュ (\) は使用しないでください。これはエスケープシーケンスを示す特殊文字であり、TOML 解析エラーの原因となる可能性があります。

  3. db サブディレクトリの最大サイズをオーバーライドするには、maxCacheSize キーを追加し、その値をバイト数を表す正の整数に設定します。例えば、サイズを 5 GB に設定するには、値 5000000000 を割り当てます。

どちらかのプロパティを設定した後に、その変更を有効にするために Unity エディターや Hub を再起動する必要はありません。

Windows の例

cacheRoot = "E:\\Unity\\cache"
maxCacheSize = 5000000000

macOS と Linux の例

cacheRoot = "/dev/external/shared/Unity/cache"
maxCacheSize = 5000000000

環境変数の使用

自動化や継続的インテグレーションを伴うシナリオでは、ユーザー設定ファイルや Preferences ウィンドウでの設定は現実的ではなく、エラーが発生しやすくなります。このようなシナリオでは、環境変数を使用してグローバルキャッシュとそのサブキャッシュの設定を行うことを検討してください。以下の環境変数が使用できます。

環境変数 説明
UPM_CACHE_ROOT グローバルキャッシュ の場所 (レジストリデータと圧縮されていないパッケージキャッシュを含むルートフォルダー) を指定します。
UPM_NPM_CACHE_PATH Package Manager がレジストリデータキャッシュ用に使用する場所の絶対パスを指定します。デフォルトでは、グローバルキャッシュルートの下にある db サブフォルダーです。
UPM_ENABLE_GIT_LFS_CACHE Git LFS キャッシュを有効にするには、空 ("") 以外の任意の値を指定します。デフォルトでは、Package Manager は、UPM_GIT_LFS_CACHE_PATH 環境変数を使用して別のパスが指定されていない限り、グローバルキャッシュルート下の git-lfs サブフォルダーを使用します。
UPM_GIT_LFS_CACHE_PATH Package Manager が Git LFS キャッシュ を保存する場所の絶対パスを指定します。このパスを設定することにより、自動的に Git LFS キャッシュを有効にします。
UPM_MAX_CACHE_SIZE レジストリデータキャッシュ (db サブディレクトリ) の最大サイズをバイト単位の正の整数で指定します。例えば、サイズを 5 GB に設定するには、値 5000000000 を割り当てます。

重要: この方法を使用する場合は、以下のガイドラインに従ってください。

  • 環境変数を設定する前に、Unity エディターと Unity Hub をすでに実行している場合は、これらを閉じます。
  • 環境変数を設定したのと同じコマンドプロンプトまたはターミナルセッションから Unity エディターまたは Unity Hub を起動します。
  • 上記の表の環境変数を設定する場合は、Unity を起動するたびに設定する必要があります。

環境変数の設定については、OS のドキュメントを参照してください。環境変数については、https://en.wikipedia.org/wiki/Environment_variable を参照してください。

追加リソース

グローバルキャッシュ
アセットパッケージのキャッシュの場所のカスタマイズ