Visual Studio は Unity WebGL コンテンツのデバッグをサポートしません。ビルド情報を取得するには、以下のヒントを参考にしてしてください。
Unity WebGL はファイルシステムにアクセスできないため、他のプラットフォームのようにログファイルを作成することはありません。ただし、すべてのログ情報 (Debug.Log
、Console.WriteLine
、Unity の内部ログなど) はブラウザーの JavaScript コンソールに記録されます。
JavaScript コンソールを開くには、以下の手順を行います。
デバッグの目的で、Unity で開発ビルドを作成したい場合があります (Build Settings ウィンドウ を開き、Development Build チェックボックスにチェックします)。開発ビルドでは、プロファイラーを接続することができ、Unity はそれらを minify (ミニファイ) しません。そのため、生成された JavaScript コードには人間が読める (C++ 名前修飾 ですが) 関数名が含まれています。ブラウザーエラーが発生すると、Debug.LogError
の使用時、または、例外をスローし例外サポートが無効になった時に、ブラウザーは上記を利用してスタックトレースを表示します。例外的なサポートが完全にサポートされている場合 (以下を参照) に発生するマネージスタックトレースとは異なり、これらのスタックトレースは名前修飾した名前を持ち、マネージコードだけでなく内部の UnityEngine コードも含みます。
WebGL にはさまざまなレベルの例外のサポートがありますが、デフォルトでは、Unity WebGL は明示的にスローされた例外のみをサポートします。詳しくは、WebGL アプリケーションのビルド を参照してください。Full の例外サポートを有効にすると、IL2CPP によって生成されたコードで追加のチェックを行い、マネージコードの null 参照と範囲外の配列要素へのアクセスをキャッチできます。これらの追加のチェックは、パフォーマンスに著しく影響し、コードサイズやロード時間を増加させるので、デバッグにのみ使用してください。
Full の例外サポートは、マネージコードのスタックトレースを生成するための関数名も出力します。このため、スタックトレースは、キャッチできない例外と Debug.Log
ステートメントのためのコンソールに表示されます。スタックトレース文字列を取得するには System.Environment.Stacktrace
を使用します。
これは一般的な問題で、特に 32 ビットブラウザーで発生します。WebGL のメモリ問題とその修正方法の詳細は、WebGL のメモリ を参照してください。
Unity WebGL は、セッション間で永続化させる必要のあるすべてのファイル (PlayerPrefs や persistentDataPath に保存されるファイルなど) をブラウザー IndexedDB に保存します。これは非同期 API なので、いつ終了するか分かりません。
以下のコードを呼び出して、メモリから IndexedDB ファイルシステムへの、持続中のファイルシステムの書き込み操作をすべてフラッシュするようにします。
FS.syncfs(false, function (err) {
if (err) {
console.log("Error: syncfs failed!");
}
});
ブラウザーのコンソールログは、通常、不適切なサーバー設定によってこのエラーを出力します。リリースビルドを展開する方法の詳細は、WebGL - 圧縮ビルドの展開 を参照してください。
コンテンツが LZMA (Unity WebGL はこれをサポートしていません) を使用して圧縮された AssetBundle をロードしようとすると、ブラウザーコンソールログはこのエラーを出力します。この問題を解決するには、LZ4 圧縮を使用して AssetBundle を再圧縮します。WebGL の圧縮の詳細は、WebGL アプリケーションのビルド、特に AssetBundles セクションを参照してください。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.