Version: 2022.3
言語: 日本語
ローカルフォルダまたは .tgz ファイルのパス
ネットワークの問題を診断する

トラブルシューティング

このセクションでは、以下の問題に関する情報を提供します。

エラーの種類 エラーメッセージ
一般的な起動時の問題 - Package Manager ウィンドウのエラーメッセージ
- Package Manager が見つからない、またはウィンドウが開かない
- Unity を新しいバージョンにアップグレードした後の問題
- プロジェクトのパッケージ設定のリセット
パッケージのインストールに関する問題 - パッケージのインストールに失敗
- Git URL からパッケージを追加できない
- Insufficient drive space (ドライブの空き容量不足)
パッケージの署名に関する問題 - Package version has no signature (パッケージのバージョンに署名がない)
- Package version doesn’t have a valid signature (パッケージのバージョンに有効な署名がない)
Git 依存関係のインストールに関する問題 - ‘git’ 実行ファイルが見つからない
- git-lfs: コマンドが見つからない
- リポジトリが見つからない
- Could not read Username: terminal prompts disabled メッセージ
- Git バージョンをアップデートできない
Asset Store パッケージ (My Assets) - ‘Failed to parse Http response’ メッセージが My Assets コンテキストに表示される
スコープ付きのレジストリー - Package Manager ウィンドウに ‘My Registries’ が表示されない
パッケージビルド時の問題 - Missing MonoBehaviour エラーメッセージ
- Windows 上の hostfxr.dll のロードエラー

ネットワーク関連の問題が発生する場合は、Unity Package Manager Diagnostics (診断) ツールを実行することもできます。詳細は、ネットワークの問題を診断する を参照してください。


Package Manager ウィンドウのエラーメッセージ

Package Manager は、問題が発生すると Package Manager ウィンドウにエラーインジケーターを表示します。

システム全体の問題

  • ネットワーク接続の問題

    Package Manager が特定のパッケージに関連しない問題を検出すると、エラーメッセージが ステータスバー に表示されます。例えば、Package Manager が パッケージレジストリサーバー にアクセスできない場合、ステータスバーに以下のメッセージが表示されます。

    ネットワークエラーメッセージ
    ネットワークエラーメッセージ
  • アセット更新エラー (またはパッケージ更新エラー)

    ネットワークがパッケージレジストリサーバーにアクセスできない場合、それはおそらくネットワークとの接続に問題があるためです。ユーザーまたはシステム管理者が ネットワークの問題を診断して修正する と、ステータスバーがクリアされます。

    ネットワーク接続が機能している状態で Unity アカウント にサインインしていない場合、Package Manager は Asset Store パッケージを表示しません。My Assets コンテキストを使用しようとすると、Package Manager のステータスバーにエラーが表示されます。

    Unity アカウントからログアウトした状態
    Unity アカウントからログアウトした状態

    リストビューSign in ボタンをクリックして Unity Hub を通して Unity アカウントにサインインします。

パッケージ特有の問題

ロードまたはインストール時に特定のパッケージに問題がある場合 (例えば、どのバージョンのパッケージをロードするかを決定する場合)、エラーアイコン () が パッケージリスト の問題があるパッケージの隣に表示されます (A) 。問題が何であるかを調べるには、問題があるパッケージの 詳細ビュー を開きます (B)

![依存性エラーメッセージ](../uploads/Main/upm-ui-errormsg.png)

Package Manager が見つからない、またはウィンドウが開かない

Package Manager ウィンドウが画面外に移動したり、他のウィンドウに隠れてしまうことがあります。このような場合には Package Manager ウィンドウを開くのに失敗したように見えます。この場合、ウィンドウのレイアウトをリセットして (Window > Layouts > Default)、Package Manager ウィンドウを再度開いてみてください。

それでもPackage Manager ウィンドウが表示されない場合は、Unity Console ウィンドウを確認してください。

Failed to resolve packages: The file [<project-path>/Packages/manifest.json] is not valid JSON:
  Unexpected token '}' at 44:1
  }

このエラーメッセージは、manifest.json ファイルが不正な形式であることを示しています。また、Package Manager がファイルの解析に失敗した行番号も表示されるので、JSON を修正することができます。問題を修正するために利用できるオンラインバリデーターは多くあります。修正したファイルを保存すると、Unity は Package Manager ウィンドウを再ロードします。

Unity エディターの古いバージョンからアップグレードした場合、パッケージマニフェストファイルの他の問題の場合があります。

  • 2019.3 以降、manifest.json ファイルに com.unity.package-manager-ui への参照を含めるべきではありません。プロジェクトのパッケージ設定をリセット するか、マニフェストの依存関係リストから以下の行を削除します。

        "com.unity.package-manager-ui": "2.1.1",
    
  • プロジェクトマニフェストがパッケージバージョンとして “exclude” を使用していないかを確認してください。これは、依存関係 プロパティの廃止になった値です。このような行が見つかった場合は、行全体を削除してください。Package Manager は、プロジェクトに依存関係として明示的に含まれるパッケージのみをインストールするため、一度登録を削除すると、Package Manager はそのパッケージを無視し、インストールしません。

それでも Package Manager のロードに失敗する場合は、プロジェクトのパッケージ設定のリセット の手順に従ってください。


Unity を新しいバージョンにアップグレードした後に問題が発生する

プロジェクトを新しい Unity バージョンにアップグレードすると、Package Manager は、互換性のないパッケージを新しい互換バージョンに自動的に更新します。ただし、Unity がパッケージをコンパイルできない場合、Package Manager はコンソールにエラーメッセージを表示します。

これらのメッセージを修正するには、エラーメッセージを読み、可能な限り問題を修正します。たとえば、パッケージに別のパッケージまたはバージョンへの依存関係がない場合があります。その場合は、自身でパッケージをインストールしてみてください。

使用できるものが見つかるまで、以下の一連の解決法を試すこともできます。

  • バックアップして、プロジェクトの下の Packages フォルダーを削除します。
  • バックアップしてから、プロジェクトの Packages フォルダー内のパッケージソースを削除し、manifest.json ファイルのみを残します。次に、プロジェクトを再ロードしてください。
  • 新しい空のプロジェクトを作成します。Package Manager ウィンドウが正常に起動したら、失敗したプロジェクトの Library/PackageCache/com.unity.package-manager-ui@<version> フォルダーを、新しく作成したプロジェクトの同じフォルダーと置き換えます。
  • 最後の手段として、プロジェクトをデフォルトのパッケージ設定にリセットし、動作するまでパッケージを 1 つずつ加えてゆきます。

プロジェクトのパッケージ設定のリセット

プロジェクトのパッケージの問題が多すぎる場合は、プロジェクトをリセットして、Unity のエディターバージョンの デフォルトのパッケージ設定 に戻すことができます。この操作により、プロジェクト内のすべてのパッケージがリセットされます。これによって問題の原因を修正することはできないかもしれませんが、問題が何であるかを理解するのに役立ちます。

ノート: パッケージ設定のリセットを取り消すことはできません。そのため、最初に manifest.json ファイルをバックアップするか、プロジェクトがソース管理下にあることを確認してください。また、先に進む前に プロジェクトの複製 を作成し、クローンの操作をテストすることで、追加の予防措置を取ることができます。

デフォルトのパッケージ設定に戻すには、Help メニューから Reset Packages to defaults を選択します。

Help > Reset Packages to defaults
Help > Reset Packages to defaults

プロジェクトの複製のリセット

最終的な変更を実行する前に、デフォルトパッケージへ戻すことをテストすることもできます。

  1. プロジェクトフォルダーをコピーし、名前を変更して見つけやすくします (例えば、プロジェクトの名前が MyProject の場合、clone_MyProject などを使用します)。

  2. 新しくコピーして作られたプロジェクトをロードします。

  3. Help メニューから、Reset Packages to defaults を選択します。

    プロジェクトのサイズによっては、数分かかる場合があります。

  4. パッケージが正常にリセットされたことを確認します。正常にリセットされれば、元のプロジェクトで安全に操作を実行できます。


パッケージのインストールが失敗する

レジストリから新しいパッケージをインストールしようとしても機能しない場合は、許可の問題が原因である可能性があります。

キャッシュフォルダー に対する完全な許可が必要です。

  • Windows: C:\Users\yourname\AppData\Local\Unity\cache
  • macOS: ~/Library/Unity/cache
  • Linux: ~/.config/unity3d/cache

ネットワークに問題がある可能性があります。 ファイアウォールプロキシ の設定を確認してください。

学校、官公庁、またはネットワークで保護された職場などの組織環境では、プロキシサーバーを設定してネットワークとインターネット間のトラフィックを制御しているために、Unity または Package Manager で認識されない独自のサーバー証明書を使用する場合があります。 ネットワーク管理者に相談してください。


Git URL からパッケージを追加できない

Repository not found を参照してください。


Insufficient drive space

インストールドライブの容量が不足していたり、空き容量が少ない場合は、パッケージキャッシュの場所を変更することを検討してください。


Package version has no signature

このメッセージは、スコープ付きレジストリから Unity パッケージをフェッチするときに表示されることがあります。Unity は、古いパッケージを除いて、作成したパッケージに署名します。署名されていない Unity パッケージをスコープ付きレジストリから別のレジストリにコピーする場合、Package Manager はパッケージの内容が安全で元のパッケージと同一かどうかを判断できません。

このメッセージが表示された場合は、以下の解決策を試みてください。

  • 別のバージョンのパッケージを使う。
  • Unity レジストリから Unity パッケージを取得します。
  • スコープ付きレジストリを所有している場合は、Unity レジストリからパッケージの最新バージョンをコピーしてください。

パッケージバージョンに有効な署名がない

パッケージには、移動前または移動中に内容が変更されていないことを確認するための署名があります。無効な署名は通常、以下のような状況で発生します。

  • 誰かが自分のレジストリで修正したパッケージを公開した。
  • エンドユーザーへのファイル移動中にエラーが発生した。

どちらの場合も、Package Manager はそのパッケージに悪意がある可能性があるとみなします。

無効な署名が表示された場合は、別のバージョンのパッケージをインストールしてみてください。また、Unity レジストリ以外のレジストリから Unity パッケージを使用することは避けてください。

修正を含む Unity パッケージを共有する場合は、Git URL を使うか、プロジェクトにパッケージを埋め込むことを検討してください。


No ‘git’ executable was found メッセージ

Git の URL からパッケージをインストールしようとすると、以下のようなメッセージが表示されます。

Cannot perform upm operation: Unable to add package
[https://github.example.com/myuser/myrepository.git]:
No 'git' executable was found. Please install Git on your system and restart Unity [NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

git-lfs: command not found メッセージ

Git LFS (Large File Storage) を使用するパッケージをダウンロードしようとすると、次のようなエラーメッセージが表示されることがあります。

Error when executing git command. git-lfs filter-process: command not found.

これは、マシンに Git LFS がインストールされていないことを示しています。確認のため、コマンドラインでテストしてみましょう。

git lfs --version

以下のに似た表示であれば、Git LFS がインストールされています。

git-lfs/2.8.0 (GitHub; darwin amd64; go 1.12.7)

そうでない場合は、BitbucketGitHub の手順に従ってインストールできます。


Repository not found メッセージ

存在しない場所を指定すると、Unity コンソール に以下のようなメッセージが表示されます。

Cannot perform upm operation: Unable to add package [https://mycompany.github.com/gitproject/com.mycompany.mypackage.git]:
  Error when executing git command. fatal: repository 'https://mycompany.github.com/gitproject/com.mycompany.mypackage.git/' not found
 [NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)

入力を確認してください。正しい URL を使用していることを確認するには、リポジトリのページに移動し、Clone ボタンから URL をコピーします 。

GitHub (A) か GitLab (B) で URL をコピー
GitHub (A) か GitLab (B) で URL をコピー

GitHub (A) または GitLab (B) の URL の右にあるボタンをクリックして、URL をクリップボードにコピーします。

リポジトリの場所が正しい場合は、URL に別の問題があるかもしれません。

  • 特定のリビジョンをターゲットにする場合は、リビジョンが最後に来るようにします。例えば、以下のようになります。
    https://github.example.com/myuser/myrepository1.git#revision
  • あるリビジョンを対象にしていてそのパッケージがルートにない場合は、以下の例のようにリビジョンアンカーの前に path クエリパラメーターがあることを確認してください。
    https://github.example.com/myuser/myrepository.git?path=/example/folder#v1.2.3

Could not read Username: terminal prompts disabled メッセージ

認証を必要とするプライベートリポジトリからパッケージをインストールしようとすると、Unity コンソールに以下のようなメッセージが表示されます。

Cannot perform upm operation: Unable to add package [https://mycompany.github.com/gitproject/com.mycompany.mypackage.git]:
  Error when executing git command. fatal: could not read Username for 'https://mycompany.github.com': terminal prompts disabled
 [NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)

このメッセージは、Package Manager に、HTTP のユーザー名とパスワードを入力するためのインタラクティブなターミナルやダイアログ、または SSH キーをアンロックするためのパスフレーズがおそらくないことを示しています。

  • ** HTTP(S)** で、BitBucket、GitHub、GitLab にログオンするたびに、ターミナルやダイアログボックスでユーザー名とパスワードを入力する必要があります。ただし、Package Manager は、HTTP(S) のユーザー名とパスワードを入力できるインタラクティブなターミナルやダイアログを提供しません。

    この問題を回避するには、HTTPS の解決策 で提案されている回避策のいずれかを使用してください。

  • ** SSH** は、パブリックとプライベートの SSH キーのペアを使用します。公開 SSH キーをBitbucketGitHubGitLab のいずれかに追加することで、ユーザー名とパスワードを入力することなく、リポジトリにアクセスすることができます。

    ただし、SSH キーを安全に保つためにパスフレーズを設定している場合、キーを認証するために、ターミナルやダイアログボックスでそのパスフレーズを入力する必要があります。その場合は、SSH エージェント を使って SSH キーのロック解除を行い、Package Manager で認証することができます。

HTTPS の解決策

Package Manager には、HTTP(S) のユーザー名とパスワードを入力するためのインタラクティブなターミナルやダイアログがありません。そのため、以下の回避策のいずれかを使用します。

  • クレデンシャルマネージャーを使用します (Git Credential Manager for Windows またはOSXKeyChain)。クレデンシャルマネージャーは、ターミナルやコマンドプロンプトを使用しなくても、パスワードの送信を処理します。
  • ターミナルやコマンドプロンプトから git-credentials を使用します。次に、同じターミナルからハブを起動して、Unity がキャッシュされた、または保存された認証情報にアクセスできるようにします。
  • 代わりに SSH を使って認証します。パスフレーズなしで SSH キーを設定すると、Package Manager は Git サーバーとの認証のためにそのキーを解読する必要がなくなります。セキュリティ強化のためにパスフレーズを使う場合でも、macOS または Windows のいずれかで ssh-agent を使用し、認証の問題を回避することができます。

SSH の解決策

SSH プロトコルを使用して、Git URL でパッケージをインストールする 場合、Git から認証エラーが送信されることがあります。これは通常、パスフレーズで保護された秘密の SSH キーをローカルマシンに設定した場合に起こります。

この問題を解決するには、SSH キーを解除する SSH エージェントを設定し Package Manager で認証できるようにします。使用するオペレーティングシステムに対応する説明に従ってください。

Windows 用の OpenSSH の設定

Windows ネイティブの OpenSSH バージョンの ssh-agent は、Git for Windows でデフォルトで提供されているバージョンよりもうまく動作します。ここでは、OpenSSH クライアントを設定し、その ssh-agent にキーを加える方法を説明します。Git for Windows を使用している場合は、Git for Windows の SSH エージェントよりもネイティブの Windows OpenSSH を優先させることもできます。

  1. OpenSSH クライアントがインストールされていることを確認してください。それを行うには、Windows の設定でそれを検索します (Start > Settings, then search for “Optional features”)。この方法は Windows 10 以降で使えます。

  2. %PATH% 環境変数を確認して、ネイティブの Windows OpenSSH の場所が表示されていることを確認してください (例えば、C:WINDOWS\System32\OpenSSH\)。

    ノート: すでに Git for Windows を使っている場合は、 %PATH% 変数で、ネイティブの Windows OpenSSH の場所が Git for Windows の SSH の場所よりも前に表示されることを確認してください。こうすることにより、Windows は Git for Windows の SSH エージェントよりもネイティブの Windows OpenSSH エージェントを使うようになります。

  3. PowerShell ターミナルで、ssh-agent プロセスを開始し、自動的に開始されることを確認します。

    # Set the ssh-agent service to start automatically and manually start it now
    Get-Service ssh-agent | Set-Service -StartupType Automatic
    # Run the ssh-agent process to start the ssh-agent service
    ssh-agent
    
  4. キーを ssh-agent にインポートします。これを行うには、コマンドラインで ssh-add を実行して、指示に従います。デフォルトでは、エージェントは %USERPROFILE%\.ssh\id_rsa のキーを加え、パスワードの入力を求めます。

    # key
    ssh-add のインポート
    

    別のキーを使用するには、それを引数として指定します。

    # ssh-agent サービスを設定して自動的に起動するように設定し、今から手動で起動します。
    ssh-add <your-secure-ssh-key-name>
    

    キーの名前を忘れた場合は、エージェントに列挙してもらうことができます。

    ssh-add -l
    
  5. Windows 版の Git をインストールした場合は、%GIT-SSH% 環境変数をリセットして、Git が常にネイティブの Windows OpenSSH バージョンの ssh-agent を使用するようにします。

    [Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)
    

macOS 用の SSH エージェントに SSH キーを加える

ssh-add コマンドを使用して、macOS システム上で動作しているssh-agent に SSH 鍵を追加します。使用するコマンドパラメーターは、使用する macOS のバージョンによって異なります。

  • macOS 12 より前の場合は、以下を使用します。

    ssh-add -K ~/.ssh/<your-secure-ssh-key-name>
    
  • macOS 12 以降の場合は、以下を使用します。

    ssh-add --apple-use-keychain ~/.ssh/<your-secure-ssh-key-name>
    

このコマンドを実行すると、ターミナルが SSH キーのロックを解除するためのパスワードを要求し、そのキーを macOS のキーチェーンに追加します。ただし、システムを再起動すると、ssh-agent に保存されているすべてのキーがリセットされます。

システムの再起動後にパスワードを再入力しないようにするには、~/.ssh/config ファイルを開き (見つからない場合は作成してください)、以下を加えてください。

Host *
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/<your-secure-ssh-key-name>

マシンを再起動して、これらの変更を適用させます。


Git バージョンの更新ができない

Git の依存関係をリポジトリから新しいバージョンに更新しようとしているのにうまくいかない場合は、Git の依存関係が ロック されていることが原因と考えられます。Git の依存関係をリポジトリからより新しいバージョンに更新したい場合は、Add package from git URL ボタンを使用して、Git URL を入力します。詳細については、ロックされた Git の依存関係 を参照してください。


‘Failed to parse Http response’ メッセージが My Assets コンテキストに表示される

Asset Store のパッケージをダウンロードしようとするときに、コンソールウィンドウに次のようなメッセージが表示される場合は、Asset Store のキャッシュに問題がある可能性があります。

[PackageManager] Error Failed to parse response. UnityEditor.AsyncHTTPClient![:D](https://forum.unity.com/styles/default/xenforo/clear.png)one(State, Int32)

この問題を解決するには、ダウンロードしたアセットを Asset Store パッケージディレクトリ からすべて削除してから、再度アセットのダウンロードを行ってください。

注意: プロジェクトに多くのアセットデータが含まれている場合、すべてを再ダウンロードするには多くの時間と帯域幅が必要になる可能性があります。


Package Manager ウィンドウに ‘My Registries’ が表示されない

すべてのレジストリプロバイダーに Unity の Package Manager との互換性があるわけではありません。追加したパッケージレジストリサーバーが /-/v1/search または /-/all のエンドポイントを実装していない場合、スコープ付きレジストリ は Unity の Package Manager と互換性がなく、Package Manager ウィンドウの My Registries コンテキストに表示されません。


Missing MonoBehaviour エラーメッセージ

ビルド中に Missing Behavior のエラーが多発する場合、UnityLinker が参照しないと思ったコンポーネントを誤って除去している可能性があります。これは、ストリッピングのレベルが強すぎるために起こります。たとえば、2D SpriteShape パッケージの SpriteShape コンポーネントを参照するプレハブが AssetBundle 内にある場合、そのオブジェクトが見つからず、コンパイラー警告が発生することがあります。

この問題を解決するには、UnityLinker のストリッピングレベルを下げるか、パッケージのアセンブリを link.xml ファイル内で宣言して、ストリッピングされないようにします。

<linker>
    <assembly fullname="Unity.2D.SpriteShape.Runtime" preserve="all"/>
    <assembly fullname="Unity.2D.Common.Runtime" preserve="all"/>
 </linker>

ストリッピングレベルと UnityLinker の詳細については、マネージコードストリッピング を参照してください。


Windows 上の hostfxr.dll のロードエラー

コンソールが hostfxr.dll ライブラリが見つかったが、Unity が C:\<path_to_app>\hostfxr.dll からのロードに失敗したと報告した場合、Windows 7 または Windows Server 2008 R2 では KB2999226KB2533623 の両パッチをインストールすることでこのエラーを修正できます。


ローカルフォルダまたは .tgz ファイルのパス
ネットワークの問題を診断する