Version: 2023.1
言語: 日本語
スコープ付きレジストリ認証
Customize the Asset Store cache location

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

Package Manager (パッケージマネージャー) はレジストリデータと非圧縮パッケージのためにグローバルキャッシュを維持します。グローバルキャッシュには補助キャッシュが含まれ、それぞれに異なる役割を果たします。パッケージマネージャーはグローバルキャッシュをデフォルトの場所に保存します。デフォルトをオーバーライドすることができます。

キャッシュの場所をオーバーライドしたい理由はいくつか考えられます。

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

デフォルトでは、Package Manager はキャッシュに以下のフォルダー構造を使用します。

<global-cache-root>
  ├── npm
  │   └── <registry data (package metadata and tarballs)>
  ├── packages
  │   └── <uncompressed contents of package tarballs>
  └── git-lfs (if enabled)
       └── <downloaded Git LFS files>

グローバルキャッシュのルートのデフォルトの場所については、グローバルキャッシュ を参照してください。

ノート: パッケージマネージャーは、グローバルキャッシュと Asset Store パッケージキャッシュを別々に保持します。Asset Store キャッシュのデフォルトの場所をオーバーライドする方法については、Asset Store のキャッシュ場所のカスタマイズ を参照してください。

グローバルキャッシュのルートのデフォルトの場所をオーバーライドするには、以下の方法を使用します。

  • その簡単さと永続性のため)、Preferences ウィンドウを使用することが推奨されます。この方法でパッケージキャッシュの場所を変更する場合、Unity は、現在のセッションと将来のセッションの環境設定を保存します。
    • ノート: Preferences ウィンドウを使用すると、ユーザー設定ファイルの cacheRoot プロパティが設定されます。ユーザー設定ファイルを手動で設定する場合は、ユーザー設定ファイルの使用 を参照してください。
  • 環境変数 による方法は永続的ではありませんが、上級ユーザーにとって、特定の使用例で便利であるかもしれません。

開始前の注意事項

  • 選択した方法に関わらず、キャッシュの場所を変更すると、Package Manager は以降その場所を使用するようになります。Package Manager が元の場所に保存した既存のパッケージは、そのフォルダ構造内に残ります。
  • 環境変数を使って、グローバルキャッシュルートやその補助キャッシュ(レジストリデータキャッシュ、非圧縮パッケージキャッシュ、Git LFS \[Large File Storage\]キャッシュ)の場所を上書きすることができます。しかし、環境変数と設定ファイルのプロパティは等価ではありません。そのため、異なる方法で設定を行うと予期せぬ結果を生むことがあります。
  • 異なる方法で複数の値を設定することがどのように作用するか、に影響を与える要因はたくさんあります。
    • 環境変数を使ってキャッシュの場所を変更した場合、環境設定ウィンドウを使って場所を変更することはできません。
    • ユーザ設定ファイルを使用する場合、変更は現在のユーザーアカウントに適用されます。グローバル設定ファイルは存在しますが、グローバル設定ファイルでグローバルキャッシュの場所を設定することはできません。
    • UPM_CACHE_ROOT 環境変数と cacheRoot プロパティの両方でグローバルキャッシュルートに異なる値を設定する場合、Package Manager は UPM_CACHE_ROOT 環境変数の場所を使用します。
    • レジストリデータキャッシュ (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 (環境設定) ウィンドウを開きます。

    • Unity メニュー (macOS) または Edit メニュー (Windows/Linux) を開き、Preferences を選択します。
    • Package Manager ウィンドウを開き、Advanced メニューを開き、Preferences を選択します。
  2. Package Manager カテゴリを選択します。

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

  4. Change Location を選択します。

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

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

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

ユーザー設定ファイルを手動で編集して、グローバル・キャッシュ・ルートの場所を上書きできます。グローバル・コンフィグレーション・ファイルは存在しますが、グローバル・コンフィグレーション・ファイルでグローバル・キャッシュの場所を設定することはできません。

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

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

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

    Windows の例

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

    macOS と Linux の例

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

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

環境変数の使用

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

環境変数 説明
UPM_CACHE_ROOT グローバルキャッシュ の場所を指定します (レジストリデータと圧縮されていないパッケージキャッシュを含むルートフォルダー)。
UPM_NPM_CACHE_PATH Package Manager がパッケージのメタデータと .tgz ファイルを保存する場所への絶対パスを指定します。デフォルトでは、グローバルキャッシュルートの下にある npm サブディレクトリです。
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 キャッシュは有効になります。

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

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

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

その他の参考資料

スコープ付きレジストリ認証
Customize the Asset Store cache location