Version: 2023.2
言語: 日本語
スコープ付きレジストリ認証
Asset Store のキャッシュ場所のカスタマイズ

Customize the global cache

The Package Manager maintains a global cache for registry data and uncompressed packages.

The global cache is separate from the cache that the Package Manager maintains for Asset Store packages. For information about the Asset Store cache, refer to Customize the Asset Store cache location.

By default, the Package Manager’s global cache root has the following subdirectories, with each subsidiary cache serving a different purpose:

  • The db subdirectory stores registry data (package metadata and tarballs).
  • The packages subdirectory stores uncompressed contents of package tarballs.
  • The git-lfs subdirectory stores downloaded Git Large File Storage (LFS) files, if you’ve enabled Git LFS.

The Package Manager stores the global cache in a default location, which you can override. For information on the default location of the global cache root, refer to global cache.

You might want to override the global cache location for several reasons:

  • 内蔵ドライブの容量を節約したい。
  • You want to store the cache on a shared drive, so others can access it.
  • システムディレクトリ内にないフォルダーにキャッシュを保存したい。

Starting with 2023.2.0f1, the maximum size of the db subdirectory defaults to 10 gigabytes (GB), which you can override. You might want to override the maximum size of the db subdirectory for several reasons:

  • If you have a small amount of available disk space, you can lower the limit to save space.
  • If you have a large amount of available disk space, you can increase the limit. This lets the Package Manager store more data in the cache, so it can fetch packages from the cache instead of downloading them again. Cached packages install faster and reduce network usage.

The following table illustrates the different methods you can use to override the default properties:

メソッド Global cache location db subdirectory max size Additional notes
Preferences window なし This is the recommended method because of its ease and permanence. When you change the package cache location using this method, Unity stores the preference for the current and future Unity Editor sessions.
User configuration file Package cache property overrides in a user configuration file persist beyond the current Unity Editor session.
Environment variables By default, this method sets the configuration for the current command prompt (or terminal) session, but you can make it permanent in your operating system settings. Advanced users might prefer session-based variables in specific use cases.

Note: Using the Preferences window to set the global cache location also sets the cacheRoot property in a user configuration file. If you want to set the user configuration file manually, refer to Using the user configuration file.

開始前の注意事項

  • 選択した方法に関わらず、キャッシュの場所を変更すると、Package Manager は以降その場所を使用するようになります。Package Manager が元の場所に保存した既存のパッケージは、そのフォルダ構造内に残ります。
  • If you set the maximum size of the db subdirectory and the new size is less than the current size of that subdirectory, the Package Manager will evict content from the cache until the new limit is reached. The Package Manager evicts the least recently used content first (based on the installation date into a project).
  • When you use a user configuration file, your change applies to the current user account. Although a global configuration file exists, you can’t set cache overrides in the global configuration file.
  • 異なる方法で複数の値を設定することがどのように作用するか、に影響を与える要因はたくさんあります。
    • 環境変数を使ってキャッシュの場所を変更した場合、環境設定ウィンドウを使って場所を変更することはできません。
    • Setting an environment variable takes precedence over applying the same setting in the user configuration file or the Preferences window.
    • レジストリデータキャッシュ (UPM_NPM_CACHE_PATH)、非圧縮パッケージキャッシュ (UPM_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 (環境設定) ウィンドウを開きます。

    • Use the Unity Editor’s menus, as described in Preferences.
    • Package Manager ウィンドウを開き、Advanced メニューを開き、Preferences を選択します。
  2. Package Manager カテゴリを選択します。

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

  4. Change Location を選択します。

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

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

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

You can manually edit the user configuration file to override the location of the global cache root, or the maximum size of the db subdirectory, or both.

以下の手順に従って、ユーザー設定を編集してください:

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

  2. To override the location of the global cache root, add the cacheRoot key and set its value as an absolute path to a custom location. 重要: TOML ファイルで Windows のパスを設定するときは、フォワードスラッシュ (/) またはダブルバックスラッシュ (\\) を使用してください。シングルバックスラッシュ (\) は、エスケープシーケンスを示す特殊文字であり TOML 解析エラーの原因となるため、使用しないでください。

  3. To override the maximum size of the db subdirectory, add the maxCacheSize key and set its value to a positive integer representing the number of bytes. For example, to set the size to 5 GB, assign a value of 5000000000.

You don’t need to restart the Unity Editor or the Hub after setting either property for the change to take effect.

Windows の例

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

macOS と Linux の例

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

環境変数の使用

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

Environment variable 説明 
UPM_CACHE_ROOT グローバルキャッシュ の場所を指定します (レジストリデータと圧縮されていないパッケージキャッシュを含むルートフォルダー)。
UPM_NPM_CACHE_PATH Specify the absolute path to the location you want the Package Manager to use for its registry data cache. By default, this is the db subdirectory under the global cache root.
UPM_CACHE_PATH Package Manager がパッケージ .tgz ファイルの圧縮されていないコンテンツを保存する場所の絶対パスを指定します。デフォルトでは、グローバルキャッシュルートの下にある packages サブディレクトリです。
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 Specify the maximum size of the registry data cache (the db subdirectory) as a positive integer, in bytes. For example, to set the size to 5 GB, assign a value of 5000000000.

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

  • 環境変数を設定する前に、Unity エディターと Unity Hub がすでに起動している場合は終了してください。
  • 環境変数を設定したのと同じコマンドプロンプトまたはターミナルセッションから Unity エディターまたは Unity Hub を起動します。
  • If you set any environment variables in the preceding table, you must set them every time you launch Unity.

環境変数の設定については、オペレーティングシステムのドキュメントを参照してください。環境変数については、環境変数 を参照してください。

その他の参考資料

スコープ付きレジストリ認証
Asset Store のキャッシュ場所のカスタマイズ