このセクションでは、以下の問題に関する情報を提供します。
ネットワーク関連の問題が発生する場合は、Unity Package Manager Diagnostics (診断) ツールを実行することもできます。詳細は、 ネットワークの問題を参照してください。
Package Manager は、問題が発生すると Package Manager ウィンドウにエラーインジケーターを表示します。
System-wide issues (システム全体の問題)
ステータスバーに表示されるエラーメッセージは、Package Manager が特定のパッケージに関連しない問題を検出したことを示します。例えば、Package Manager が パッケージレジストリサーバー にアクセスできない場合、ステータスバーに以下のメッセージが表示されます。
ネットワークがパッケージレジストリサーバーにアクセスできない場合、それはおそらくネットワークとの接続に問題があるためです。ユーザーまたはシステム管理者がネットワークエラーを修正すると、ステータスバーがクリアされます。
ネットワーク接続が機能している状態で Unity アカウントにサインインしていない場合、Package Manager はアセットパッケージを表示しません。My Assets スコープを使用しようとすると、Package Manager のステータスバーにエラーが表示されます。
リストビューの Sign in ボタンをクリックして Unity Hub を通して Unity アカウントにサインインします。
Package-specific issues (パッケージ特有の問題)
ロードまたはインストール時に特定のパッケージに問題がある場合 (例えば、どのバージョンのパッケージをロードするかを決定する場合)、エラーアイコン () がパッケージリスト の問題があるパッケージの隣に表示されます (A) 。問題が何であるかを調べるには、問題があるパッケージの詳細ビューを開きます (B)。
package.manifest
ファイルの形式が正しくない場合、Unity コンソールに次のようなエラーが表示されます。
Failed to resolve packages: The file [<project-path>/Packages/manifest.json] is not valid JSON:
Unexpected token '}' at 44:1
}
エラーメッセージに含まれる情報を使用して、JSON を修正できます。問題を修正するために使用できるオンライン検証ツールがいくつかあります。修正したファイルを保存すると、Unity は Package Manager ウィンドウを再ロードします。
2019.3 以降、package.manifest
ファイルに com.unity.package-manager-ui への参照を含めるべきではありません。プロジェクトのパッケージ設定を リセットするか、マニフェストの依存関係リストから以下の行を削除します。
"com.unity.package-manager-ui": "2.1.1",
Package Manager ウィンドウがまだ表示されない場合は、Unity を再起動してください。
それでも問題が解決しない場合は、プロジェクトのマニフェストでパッケージのバージョンに “exclude” が使用されていないかを確認してください。これは依存関係属性で廃止された値です。このような行がある場合は、行全体を削除します。パッケージマネージャーは、プロジェクトに依存関係として明示的に含まれているパッケージのみをインストールするため、いったんそのエントリーを削除すると、パッケージマネージャーはそのパッケージを無視し、インストールしません。
それでも Package Manager の読み込みに失敗する場合は、パッケージが認識されないと プロジェクトのパッケージ設定のリセットの手順に従ってください。
プロジェクトを新しい Unity バージョンにアップグレードすると、Package Manager は、互換性のないパッケージを新しい互換バージョンに自動的に更新します。ただし、Unity がパッケージをコンパイルできない場合、Package Manager はコンソールにエラーメッセージを表示します。
これらのメッセージを修正するには、エラーメッセージを読み、可能な限り問題を修正します。たとえば、パッケージに別のパッケージまたはバージョンへの依存関係がない場合があります。その場合は、自身でパッケージをインストールしてみてください。
使用できるものが見つかるまで、以下の一連の解決法を試すこともできます。
Packages
フォルダーを削除します。Packages
フォルダー内のパッケージソースを削除し、manifest.json
ファイルのみを残します。次に、プロジェクトを再ロードしてください。Library/PackageCache/com.unity.package-manager-ui@<version>
フォルダーを、新しく作成したプロジェクトの同じフォルダーと置き換えます。レジストリから新しいパッケージをインストールしようとしても機能しない場合は、許可の問題が原因である可能性があります。
キャッシュフォルダーに対する完全な許可が必要です。
C:\Users\yourname\AppData\Local\Unity\cache
~/Users/Library/Unity/cache
ネットワークに問題がある可能性があります。 ファイアウォール と プロキシ の設定を確認してください。
学校、官公庁、またはネットワークで保護された職場などの組織環境では、プロキシサーバーを設定してネットワークとインターネット間のトラフィックを制御しているために、Unity または Package Manager で認識されない独自のサーバー証明書を使用する場合があります。 ネットワーク管理者に相談してください。
多くのコンパイルエラーが表示される場合、Unity が既存のプロジェクトのパッケージを認識していないことを示している可能性があります。この場合、.NET コンポーネントが欠落している可能性があります。
Windows の場合
MacOS の場合
.NET SDK v2.2.101 コンポーネントをダウンロードしてインストールします。
推奨される更新プログラムを Visual Studio にインストールします。
Homebrew を使用して、mono を作成してインストールします。
brew update
brew install mono # optional
brew upgrade mono
必要な場合は、プロジェクトの Library/obj/temp
フォルダーを削除し、Unity を再起動します。
それでも、問題が解決しない場合は、コンピューターも再起動します。
コンソールが hostfxr.dll
ライブラリが見つかったが、Unity が C:\<path_to_app>\hostfxr.dll
からのロードに失敗したと報告した場合、Windows 7 または Windows Server 2008 R2 では KB2999226 と KB2533623 の両パッチをインストールすることでこのエラーを修正できます。
プロジェクトのパッケージの問題が多すぎる場合は、プロジェクトをリセットして、Unity のエディターバージョンのデフォルトのパッケージ設定に戻すことができます。この操作により、プロジェクト内のすべてのパッケージがリセットされます。これによって問題の原因を修正することはできないかもしれませんが、問題が何であるかを理解するのに役立ちます。
ノート: パッケージ設定のリセットを取り消すことはできません。そのため、最初に manifest.json
ファイルをバックアップするか、プロジェクトがソース管理下にあることを確認してください。また、先に進む前にプロジェクトの複製を作成し、クローンの操作をテストすることで、追加の予防措置を取ることができます。
デフォルトのパッケージ設定に戻すには、Help メニューから Reset Packages to defaults を選択します。
最終的な変更を実行する前に、デフォルトパッケージへ戻すことをテストすることもできます。
プロジェクトフォルダーをコピーし、名前を変更して見つけやすくします (例えば、プロジェクトの名前が MyProject
の場合、clone_MyProject
などを使用します)。
新しくコピーして作られたプロジェクトをロードします。
Help メニューから、Reset Packages to defaults を選択します。
プロジェクトのサイズによっては、数分かかる場合があります。
パッケージが正常にリセットされたことを確認します。正常にリセットされれば、元のプロジェクトで安全に操作を実行できます。
SSH プロトコルを使用して Git URL でパッケージをインストールする場合、バックグラウンドで ssh-agent を実行していて、PID 環境変数が適切に設定されていても、Git から認証エラーを受け取る場合があります。
スクリプトがバックグラウンドで ssh-agent を起動する際、エクスポートされた環境変数が有効なのは、現在スクリプトが走る Bash シェルとその地点から起動する子プロセスのみです。なぜなら、スクリプトは親プロセス、無関係のプロセス、作成済みの子プロセスの環境変数を変更できないからです。仮にスクリプトが .bashrc
に位置していたとしても、Bash シェルで実行されてしまうでしょう。
Unity アイコンをダブルクリック、または、Unity Hub を使用して Unity または Unity Hub (Windows と macOS の両方) を起動してもシェルで実行されないため、スクリプトは実行されません。つまり、Unity Editor の処理にはこれらの変数が設定されていないため、最終的に Unity によって呼び出される Git 処理にもこれらの変数は含まれません。
この問題を解決するには、以下のいずれかを実行できます。
# Expose env variables to native windows
setx SSH_AGENT_PID "$SSH_AGENT_PID"
setx SSH_AUTH_SOCK "$SSH_AUTH_SOCK"