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

トラブルシューティング

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

エラーの種類 エラーメッセージ
一般的な起動時の問題 - Package Manager ウィンドウのエラーメッセージ
- Package Manager が見つからない、またはウィンドウが開かない
- Unity を新しいバージョンにアップグレードした後の問題
- プロジェクトのパッケージ設定をリセットする
パッケージのインストールに関する問題 - パッケージのインストールが失敗する
- パッケージが認識されない
Git 依存関係のインストールに関する問題 - ‘git’ 実行ファイルが見つからない
- git-lfs: コマンドが見つからない
- リポジトリが見つからない
- [Could not read Username: terminal prompts disabled] メッセージ(#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 ウィンドウにエラーインジケーターを表示します。

  • System-wide issues (システム全体の問題)

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

    ネットワークエラーメッセージ
    ネットワークエラーメッセージ

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

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

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

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

  • Package-specific issues (パッケージ特有の問題)

    If a specific package has a problem when loading or installing (for example, when determining which package versions to load), the error icon () appears in the package list next to the compromised package (A). To find out what the problem is, open the compromised package’s details view to see the detailed error message (B):

    Dependency error message
    Dependency error message

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 の詳細については、マネージコードストリッピング を参照してください。


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 つずつ加えてゆきます。

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

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

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

  • Windows: C:\Users\yourname\AppData\Local\Unity\cache
  • MacOS: ~/Users/Library/Unity/cache

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

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


パッケージが認識されない

多くのコンパイルエラーが表示される場合、Unity が既存のプロジェクトのパッケージを認識していないことを示している可能性があります。この場合、.NET コンポーネントが欠落している可能性があります。

Windows の場合

  1. Visual Studio 2017 version 15.9.0 以降と、Other Toolsets (他のツールセット) で選択した .NET Core cross-platform development workload (.NET Core クロスプラットフォームの開発) と一緒に、ダウンロードしてインストールします。 .NET SDK v2.2.101 コンポーネントをダウンロードしてインストールします。

MacOS の場合

  1. .NET SDK v2.2.101 コンポーネントをダウンロードしてインストールします。

  2. 推奨される更新プログラムを Visual Studio にインストールします。

  3. Homebrew を使用して、mono を作成してインストールします。

    brew update
    brew install mono # optional
    brew upgrade mono
    
  4. 必要な場合は、プロジェクトの Library/obj/temp フォルダーを削除し、Unity を再起動します。

  5. それでも、問題が解決しない場合は、コンピューターも再起動します。


Windows 上の hostfxr.dll の読み込みエラー

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


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

プロジェクトのパッケージの問題が多すぎる場合は、プロジェクトをリセットして、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. パッケージが正常にリセットされたことを確認します。正常にリセットされれば、元のプロジェクトで安全に操作を実行できます。


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 をコピーします 。

Where to copy the URL on GitHub (A) and GitLab (B)
Where to copy the URL on GitHub (A) and GitLab (B)

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. Windows の設定で検索して、OpenSSH クライアントがインストールされていることを確認してください (開始 > 設定 を開き、“オプション機能” を検索)。この方法は 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-add を実行して、指示に従って、キーを ssh-agent にインポートします。デフォルトでは、エージェントは %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 キーを加える

以下のコマンドを使用して、macOS システム上で動作しているssh-agent に SSH キーを加えます。

ssh-add -K ~/.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 の依存関係 を参照してください。


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

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


‘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 パッケージディレクトリ からすべて削除してから、再度アセットのダウンロードを行ってください。

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

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