Backtrace を Unity に統合すると、ログエラー、Unity のハンドル済みおよび未ハンドルの例外、ネイティブクラッシュがキャプチャされ、Backtrace インスタンスに報告されます。これにより、開発者はソフトウェアのエラーに簡単に優先順位を付け、デバッグできます。
https://backtrace.io/create-unity で Backtrace インスタンスを作成します。ログインすると、「プロジェクト設定」 > 「インテグレーションガイド」ページで、Unity に統合する方法のクイックスタートを確認できます。
backtrace-unity ライブラリを、こちらの GitHub 上の Backtrace のページからダウンロードするか、OpenUPM を使用してインストールします。
機能の概要
- ログエラー、ハンドル済みおよび未ハンドルの例外、ネイティブクラッシュを Backtrace へ迅速に送信する軽量なライブラリ
- 幅広い Unity バージョン(2017.4 以降)とデプロイ(iOS、Android、Windows、Mac、WebGL、PS4/5、Xbox One/S/X、Nintendo Switch、Stadia)をサポート
- OpenUPM と Unity パッケージマネージャーを使用してインストール
- ユニークユーザーやセッションに対するクラッシュのない統計を識別して測定する
- 詳細なコンテキストの収集
- コールスタック(可能な場合は関数名や行番号を含む)
- デバイス GUID、OS バージョン、メモリ使用量、プロセスの経過時間などのシステムメタデータ
- アプリのバージョン、シーン情報、デバイスドライバーなどのカスタムメタデータ
- パンくず、スクリーンショット、ログファイルまたは設定ファイル、その他のアタッチメント
- Android NDK のクラッシュ、iOS のネイティブクラッシュ、Windows のネイティブクラッシュ
- クライアントサイド機能
- 重複排除オプションとカスタムのクライアントサイドフィンガープリント
- クライアントサイドのフィルターとサンプリングコントロール
- 将来の収集に向けたオフラインでのクラッシュのキャプチャ/保存
- カスタマイズ可能なイベントハンドラーと基本クラス
- 実行等のタイミングの観測を目的としたパフォーマンス統計の収集オプション
- 自作のゲームでの Backtrace 動作を設定できる Unity IDE インテグレーション
前提条件
- Backtrace インスタンス(https://backtrace.io/create-unity、すなわち https://mygame.sp.backtrace.io を通じて作成される)。
- Unity 環境 2017+
- .NET 3.5/4.5/Standard 2.0 スクリプティングランタイムバージョン
- Mono または IL2CPP スクリプティングバックエンド
設定とインストール
インストールには 3 つのオプションがあります。ほとんどのユーザーには OpenUPM でのインストールを推奨しています。
OpenUPM
Git URL
Unity 2018.3 以降、Unity パッケージマネージャーでは Git を使用してパッケージを直接インストールできます。Unity リポジトリのメインページでクローン URL を使用できます。
手動ダウンロード
- backtrace-unity の zip ファイルをダウンロードし、適当なフォルダーに解凍します。zip ファイルはこちらでダウンロードできます
- Unity プロジェクトを開きます
- Unity パッケージマネージャーを使用して backtrace-unity ライブラリをインストールします(「Window」 > 「Package Manager」 > 「Add Package From Disk」 >
KnownFolder/package.json
)
詳細については、GitHub 上の README を参照してください。
サポートされているプラットフォーム
backtrace-unity は、次のプラットフォームに展開されたゲームに対してテスト済みであり、動作が保証されています。
- モバイル - Android、iOS
- PC - Windows、Mac
- Web - WebGL
- ゲームコンソール - PlayStation 4、PlayStation 5、Xbox One、Xbox Series X | S、Nintendo Switch、Google Stadia
backtrace-unity によって提供される機能は、プラットフォームごとに異なります。主な機能は次のようにまとめられます。
- すべてのプラットフォーム - エラー、未ハンドルの例外、ハンドル済みの例外、インデックス可能なカスタムメタデータ、ファイル添付*、パンくず、スクリーンショットの自動添付、クライアントサイドの重複排除ルール*、クライアントサイドの送信フィルタリング、クライアントサイドの送信制限、クラッシュフリーの指標(WebGL を除く)、パフォーマンス診断、オフラインデータベース*(Nintendo Switch を除く)
- Android - 属性
uname.sysname
= Android で確認。ANR(ハング)、ネイティブなプロセス情報とメモリ情報、Java 例外ハンドラー(プラグイン、Android Studio でエクスポートされたゲーム)、NDK のクラッシュ、低メモリの警告。 - iOS - 属性
uname.sysname
= IOS で確認。ANR(ハング)、ネイティブなエンジン、メモリ、プラグインのクラッシュ - WebGL - 属性 `
uname.sysname
= WebGL で確認。属性device.model
は現在、ブラウザー情報を共有するために使用されています。WebGL エラーのスタックトレースが利用できるのは、「Publishing Settings」 > 「Enable Exceptions」ドロップダウンでそれらを有効にしている場合のみであることに注意してください。詳細については、こちらで確認できます。 - Switch - 属性
uname.sysname
= Switch で確認。属性 GUID は Switch が再起動するたびに再生成される点に注意してください(これは、ユーザーまたはデバイスの数を正確にカウントしたものではなく、Switch セッションの数です)。また、現在のリリースではオフラインデータベースとその関連機能はサポートされていないことに注意してください。 - PlayStation4 - 属性
uname.sysname
= PS4 で確認。 - Windows - 属性
uname.sysname
= Windows で確認。エンジンクラッシュのミニダンプをキャプチャするオプションが利用できます。 - MacOS - 属性
uname.sysname
= MacOS で確認
注:Unity では、プレイヤープロパティでスタックトレース情報を無効にできます。これが設定されていると、コールスタックは空になり、パンくずにログ行のセクションは含まれなくなります。
プロジェクトへの基本的なインテグレーション
次の 120 秒にわたる解説ビデオでは、Backtrace を Unity Editor に統合するプロセスについて段階別に説明しています。