このセクションでは、以下の問題に関する情報を提供します。
| エラーの種類 | エラーメッセージ |
|---|---|
| 一般的な起動時の問題 | - Package Manager ウィンドウのエラーメッセージ - Package Manager が見つからない、またはウィンドウが開かない - Unity を新しいバージョンにアップグレードした後に問題が発生する |
| パッケージのインストールに関する問題 | - パッケージのインストールが失敗する - Git URL からパッケージを追加できない - ドライブスペース不足 |
| パッケージの署名に関する問題 | - パッケージバージョンに署名がない - パッケージバージョンに有効な署名がない |
| Git 依存関係のインストールに関する問題 | - No ‘git’ executable was found (実行可能な git が見つかりませんでした) - git-lfs: command not found (git-lfs: コマンドが見つかりませんでした) - Repository not found (リポジトリが見つかりません) - Could not read Username: terminal prompts disabled (ユーザー名を読み取れませんでした: 端末プロンプトが無効です) - Can’t update Git version (Git バージョンを更新できません) |
| アセットストアのアセットパッケージ (My Assets) | - ‘Failed to parse http response’ in My Assets context (My Assets コンテキストの http レスポンスを解析できませんでした) |
| スコープ付きのレジストリー | - Package Manager ウィンドウに ‘My Registries’ が表示されない |
| パッケージビルド時の問題 | - Missing MonoBehaviour errors (MonoBehaviour が見つからないエラーが発生しています) |
ネットワークに関連する可能性がある問題が発生する場合は、Unity Package Manager Diagnostics (診断) ツールを実行することもできます。詳細については、ネットワーク問題の診断を参照してください。
Package Manager は、問題が発生すると Package Manager ウィンドウにエラーインジケーターを表示します。
ネットワーク接続の問題
Package Manager が特定のパッケージに関連しない問題を検出した場合に、ステータスバーにエラーメッセージが表示されます。例えば、Package Manager がパッケージレジストリサーバーにアクセスできない場合は、ステータスバーに以下のメッセージが表示されます。
アセットの更新エラー (またはパッケージの更新エラー)
ネットワークがパッケージレジストリサーバーにアクセスできない場合は、おそらくネットワークとの接続に問題があることが原因です。ユーザーまたはシステム管理者がネットワークエラーを診断し修正すると、ステータスバーがクリアされます。
ネットワーク接続が機能している状態で Unity アカウントにサインインしていない場合、Package Manager は Asset Store のパッケージを表示しません。My Assets コンテキストを使用しようとすると、Package Manager はサインインするよう求めます。
リストパネル内の Sign in ボタンをクリックして、Unity Hub から Unity アカウントにサインインします。
ロードまたはインストール時に特定のパッケージに問題がある場合 (例えば、ロードするパッケージのバージョンを決定する場合)、リストパネルの問題があるパッケージ (A) の横にエラーアイコン (
) が表示されます。問題を特定するには、問題があるパッケージの詳細パネルで詳細なエラーメッセージ (B) を確認します。
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” を使用していないかどうかを確認してください。これは、dependencies プロパティの廃止された値です。このような行が見つかった場合は、行全体を削除してください。Package Manager は、プロジェクトに依存関係として明示的に含まれるパッケージのみをインストールするため、一度エントリーを削除すると、Package Manager は該当するパッケージを無視し、インストールしません。
プロジェクトを新しい Unity バージョンにアップグレードすると、Package Manager は、互換性のないパッケージを新しい互換バージョンに自動的に更新します。ただし、パッケージをコンパイルできない場合、Package Manager は Console ウィンドウにエラーメッセージを表示します。
これらのメッセージを修正するには、エラーメッセージを読み、可能な限り問題を修正します。例えば、パッケージに別のパッケージまたはバージョンへの依存関係がない場合があります。その場合は、ご自身でパッケージをインストールしてみてください。
使用できるものが見つかるまで、以下の一連の解決法を試すこともできます。
Packages フォルダーを削除します。Packages フォルダー内のパッケージソースを削除し、manifest.json ファイルのみを残します。次に、プロジェクトをリロードしてみてください。Library/PackageCache/com.unity.package-manager-ui フォルダーを新しく作成したプロジェクトの同じフォルダーに置き換えます。
レジストリから新しいパッケージをインストールしようとしても機能しない場合は、許可の問題が原因である可能性があります。
キャッシュフォルダーに対する完全な許可が必要です。
%LOCALAPPDATA%\Unity\cache\upm
%ALLUSERSPROFILE%\Unity\cache\upm
$HOME/Library/Caches/Unity/upm
$HOME/.cache/Unity/upm
ネットワークに問題がある可能性があります。ファイアウォールとプロキシの設定を確認してください。
学校、官公庁、またはネットワークで保護された職場などの組織環境では、プロキシサーバーを設定してネットワークとインターネット間のトラフィックを制御しているために、Unity または Package Manager で認識されない独自のサーバー証明書を使用する場合があります。ネットワーク管理者に相談してください。
Repository not found (リポジトリが見つかりません) を参照してください。
インストールドライブの容量が不足しているか、低容量である場合は、以下の解決策を検討してください。
このメッセージは、スコープ付きレジストリから Unity パッケージを取得したときに表示される場合があります。Unity は、作成したパッケージに署名します。ただし、後のリリースで必ずしも再署名されるとは限らない古いパッケージは除きます。署名されていない Unity パッケージをスコープ付きレジストリから別のレジストリにコピーする場合、Package Manager はパッケージのコンテンツが安全かつ元のパッケージと同一であるかどうかを判別できません。
このメッセージが表示された場合は、以下の解決策を試してください。
パッケージにはコンテンツが転送前または転送中に変更されていないことを保証する署名があります。無効な署名は通常、以下の状況で発生します。
どちらの場合も、Package Manager はパッケージを悪意のある可能性があるものとみなします。
無効な署名を取得した場合は、別のバージョンのパッケージのインストールを試行できます。また、Unity Registry 以外のレジストリから取得した Unity パッケージを使用することは回避してください。
修正済みの Unity パッケージを共有している場合は、Git URL を使用するか、プロジェクトにパッケージを埋め込むことを検討してください。
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 (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)
それ以外の場合は、Bitbucket GitHub の指示に従ってインストールできます。
Package Manager が指定されたリポジトリを見つけることができない場合は、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 の右にあるボタンをクリックして、URL をクリップボードにコピーします。
リポジトリの場所が正しい場合は、URL に別の問題があることが考えられます。
https://github.example.com/myuser/myrepository1.git#revision
path クエリパラメーターがあることを確認してください。
例: https://github.example.com/myuser/myrepository.git?path=/example/folder#v1.2.3
リポジトリと URL の場所が正しい場合は、PATH システム環境変数を確認してください。PATH 変数に Git cmd ディレクトリ (Windows) と Git bin ディレクトリ (Windows、macOS) のエントリーが含まれていることを確認します。Package Manager プロセスでは、PATH 変数にこれらのエントリーが必要です。
認証を必要とするプライベートリポジトリからパッケージをインストールしようとすると、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 キーを Bitbucket、GitHub、または GitLab に追加し、ユーザー名とパスワードの入力を必要とせずにリポジトリにアクセスできます。
ただし、SSH キーを安全に保管するためのパスフレーズを設定している場合でも、キーを認証するには、ターミナルまたはダイアログにそのパスフレーズを入力する必要があります。その場合は、SSH エージェントを使用して SSH キーのロック解除を行い、ユーザーに代わり Package Manager で認証することができます。
Package Manager には、HTTP(S) のユーザー名とパスワードを入力するためのインタラクティブなターミナルやダイアログがありません。これをバイパスするには、以下の回避策のいずれかを使用します。
SSH プロトコルを使用して、Git URL でパッケージをインストールする場合は、Git から認証エラーが送信される可能性があります。これは通常、パスフレーズで保護されたプライベート SSH キーをローカルコンピューターに設定した場合に起こります。
この問題を解決するには、SSH キーを解除できる SSH エージェントを設定し、ユーザーに代わって Package Manager で認証するようにします。使用するオペレーティングシステムに対応するセクションの手順に従ってください。
Windows ビルトインの OpenSSH バージョンの ssh-agent は、Git for Windows でデフォルトで利用可能なバージョンよりも良好に動作します。ここでは、OpenSSH クライアントを設定し、その ssh-agent にキーを加える方法を説明します。Git for Windows を使用している場合は、Git for Windows の SSH エージェントよりもビルトインの Windows OpenSSH を優先させることもできます。
OpenSSH Client がインストールされていることを確認します。これを行うには、Windows Settings の Optional features ウィンドウで検索します (Start > Settings に移動し、“Optional features” を検索)。この操作は Windows 10 以降について該当します。
%PATH% 環境変数を調べて、ビルトインの Windows OpenSSH の場所 (例: C:\WINDOWS\System32\OpenSSH\) が表示されていることを確認します。
ノート: すでに Git for Windows を使用している場合は、ビルトインの Windows OpenSSH の場所が %PATH% 変数の Git for Windows SSH の場所より前に表示されていることを確認します。こうすることにより、Windows は Git for Windows の SSH エージェントよりもビルトインの Windows OpenSSH エージェントを優先して使用するようになります。
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
キーを ssh-agent にインポートします。これを行うには、コマンドラインで ssh-add を実行し、指示に従います。デフォルトでは、エージェントは %USERPROFILE%\.ssh\id_rsa キーを追加し、パスワードの入力を求めます。
# Import the key
ssh-add
別のキーを使用するには、それを引数として指定します。
# Set the ssh-agent service to start automatically and manually start it now
ssh-add <your-secure-ssh-key-name>
キーの名前を思い出せない場合は、以下のコマンドを使用してキーのリストを取得します。
ssh-add -l
Windows 版の Git をインストールした場合は、%GIT-SSH% 環境変数をリセットして、Git が常にビルトインの Windows OpenSSH バージョンの ssh-agent を使用するようにします。
[Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)
ssh-add コマンドを使用して、macOS システム上で動作している ssh-agent に SSH キーを追加します。使用するコマンドパラメーターは、macOS のバージョンによって異なります。
macOS 11 以前では、以下のコマンドパラメーターを使用します。
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 の依存関係をリポジトリから新しいバージョンに更新する必要がある場合は、Add package from Git URL ボタンを使用して、Git URL を入力します。詳細については、ロックされた Git の依存関係を参照してください。
アセットストアからアセットパッケージをダウンロードしようとしたときに Console ウィンドウに以下のメッセージが表示される場合は、アセットパッケージのキャッシュに問題がある可能性があります。
[PackageManager] Error Failed to parse response. UnityEditor.AsyncHTTPClientone(State, Int32)
この問題を解決するには、ダウンロードしたアセットパッケージファイルの場所からすべてのダウンロードしたアセットを削除してから、アセットのダウンロードを再試行します。
注意: プロジェクトに多くのアセットデータが含まれている場合、すべてを再ダウンロードするには多くの時間と帯域幅が必要になる可能性があります。
すべてのレジストリプロバイダーに Unity の Package Manager との互換性があるわけではありません。追加したパッケージレジストリサーバーが /-/v1/search エンドポイントまたは /-/all エンドポイントを実装していない場合、スコープ付きレジストリは Unity の Package Manager と互換性がなく、Package Manager ウィンドウのナビゲーションパネルの My Registries に表示されません。
ビルド中に 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 の詳細については、マネージコードストリッピングを参照してください。