Visual Studio は Unity Web コンテンツのデバッグをサポートしていません。ビルド情報の取得には以下のヒントを使用してください。
Unity Web プラットフォームはファイルシステムにアクセスできないため、他のプラットフォームのようにログファイルを作成しません。ただし、すべてのログ情報 (Debug.Log、Console.WriteLine、Unity の内部ログなど) はブラウザーの JavaScript コンソールに書き込まれます。
JavaScript コンソールを開くには、以下の手順を行います。
| OS | ブラウザー | 説明 |
|---|---|---|
| Windows | Firefox | Ctrl + Shift + K を押します。 |
| Chrome | Ctrl + Shift + J を押します。 | |
| Microsoft Edge | F12 を押します。 | |
| Internet Explorer | F12 を押します。 | |
| Mac | Firefox | Command + Option + K を押します。 |
| Chrome | Command + Option + J を押します。 | |
| Safari |
|
Unity で開発ビルドを作成してコードをデバッグできます。開発ビルドを作成するには以下を実行します。
Build Profiles ウィンドウ を開きます。
Development Build を有効にします。
開発ビルドでは、プロファイラーに接続できます。Unity はコードを 最小化 しないため、生成される JavaScript コードには人間が判読できる C++ の名前修飾 を持つ関数名が含まれます。
Debug.LogError の使用中にブラウザーエラーが発生した場合、または例外サポートを無効にしているときに例外が発生した場合、ブラウザーはこれらを使用してスタックトレースを表示します。例外サポートを Full に設定した場合に発生するマネージスタックトレースとは異なり、これらのスタックトレースには修飾名が付いており、マネージコードと内部的な Unity エンジンコードが含まれています。
ウェブにはさまざまなレベルの例外サポートがありますが、Unity Web は明示的にスローされた例外のみをデフォルトでサポートします。詳細については、Web Player 設定 を参照してください。例外サポートを Full に設定すると、IL2CPP によって生成されたコードで追加のチェックを行い、マネージコードの null 参照と範囲外の配列要素へのアクセスをキャッチできます。これらの追加のチェックはパフォーマンスに大きく影響し、コードサイズやロード時間を増加させるため、デバッグにのみ使用してください。
例外サポートを Full に設定すると、マネージコードのスタックトレースを生成するための関数名も出力されます。このため、キャッチできない例外と Debug.Log ステートメントのスタックトレースがコンソールに表示されます。スタックトレース文字列を取得するには、System.Environment.StackTrace を使用します。
これは一般的な問題で、特に 32 ビットブラウザーで発生します。ウェブのメモリ問題とその修正方法の詳細は、Unity Web のメモリ を参照してください。
ブラウザーのコンソールログは、通常、不適切なサーバー設定が原因でこのエラーを出力します。リリースビルドを展開する方法の詳細は、圧縮ビルドの展開 に関するドキュメントを参照してください。
コンテンツが LZMA (Unity Web はこれをサポートしていません) を使用して圧縮されたアセットバンドルを読み込もうとすると、ブラウザーコンソールログはこのエラーを出力します。この問題を解決するには、LZ4 圧縮を使用してアセットバンドルを再圧縮します。ウェブ用の圧縮の詳細は、Web ビルド に関するドキュメント、特に アセットバンドル のセクションを参照してください。