Article by: Stefan Jandl
Sentry の Unity 向け SDK 4.0.0 をリリースしました。
これはこれまでで最大のアップデートです。このメジャーリリースでは、ゲーム機への包括的な対応、構造化ログ、ユーザーフィードバック機能、そしてあらゆるプラットフォームでより良いゲームを作るための重要な改善が追加されています。新機能は以下のとおりです。
ゲーム機対応
Unity 向け Sentry SDK は、Xbox と PlayStation をネイティブにサポートするようになりました。
これにより、Sentry のエラートラッキングの全機能がゲーム機にも提供されます。SDK は scope をネイティブ層へ自動的に同期するため、ゲームがゲーム機上でクラッシュした場合でも、取得された issue には C# の適切な行番号を含む完全なスタックトレースが付与されます。
さらに Sentry は、カスタムコンテキスト、タグ、breadcrumbs も提供します。こうした全プラットフォームで統一された体験により、問題がどこで発生したかに関わらず、トリアージと修正が容易になります。

構造化ログ
構造化ログが、Unity 向け Sentry SDK で本番利用可能になりました。つまり、ログ出力がゲーム内のエラー、クラッシュ、パフォーマンス問題に直接つながるようになります。
SDK は設定に応じてデバッグログの出力を自動的に取り込み、Sentry 上で閲覧・検索できる構造化ログエントリを作成します。プレイヤーがシーン読み込み中にクラッシュしたり、ロード画面で止まってしまったりした場合でも、問題に至るまでのログの流れをすべて追えるため、再現が難しい問題の診断が大幅に容易になります。
User Feedback(ユーザーフィードバック)
User Feedback のサポートが、Unity 向け Sentry SDK で利用可能になりました。
これにより、プレイヤーは不具合の報告や、プレイ体験に関する一般的なフィードバックを送れます。技術的なエラーデータとプレイヤー視点のギャップを埋め、スタックトレースや技術的な診断情報と並べて、実際のプレイヤーのインサイトを確認できるようになります。
SDK には、すぐに使える Sentry UserFeedback のプレハブが含まれており、シーンにドラッグ&ドロップするだけで利用できます。独自のプレハブバリアントを作成してカスタマイズすることも可能です。プレイヤーはテキストでメッセージを送れ、必要に応じてスクリーンショットも添付できます。これにより、プレイヤーの視点から問題を理解しやすくなります。もちろん、独自のフィードバック UI を作りたい場合は、静的 API を使ってプログラムから User Feedback を送信できます。User Feedback の実装方法については、ドキュメントで詳しく確認してください。

設定の簡素化
4.0.0 リリースでは、Runtime と BuildTime の設定を 1 つの OptionsConfiguration スクリプトに統合し、SDK の設定を整理しました。
この簡素化により、プリプロセッサディレクティブを使ってプラットフォーム固有のオプションを設定しやすくなります。
また、自動初期化の挙動を無効化できるようになり、ゲームのライフサイクルの任意のタイミングで、プログラムから Init を呼び出せます。さらに、機能やサポートを犠牲にする必要はありません(例:モバイルにおけるネイティブエラーのカバレッジ)。
設定更新の詳細は Migration Guide を確認してください。
パフォーマンスと信頼性の改善
このリリースには、すべてのプラットフォームにおける安定性を向上させる多数の修正が含まれています。
なかでも重要なものは次のとおりです。
- Android のレースコンディションを修正
競合が起きるシナリオで特にクラッシュの原因となり得た問題に対し、ThreadPool を JNI のライフサイクルを適切に管理する専用のバックグラウンドワーカースレッドへ置き換えることで修正しました。 - WebGL の例外キャプチャを改善
スタックトレースのサポートをより良くするため、ログ連携を通じた例外キャプチャを改善しました。
このほかにも、デバッグシンボルの検出改善、シーン名の正しい報告、Burst サポートの改善、スレッドセーフなスクリーンショットキャプチャなどが含まれます。
コンテキストとデバッグの強化
SDK はよりリッチなコンテキストを自動的に提供するようになりました。
- クラッシュ時のスクリーンショット:Windows を対象にスクリーンショットキャプチャを有効にしている場合、SDK はネイティブクラッシュに対してスクリーンショットを取得し、添付します。
- メモリレポート:割り当て済みメモリが、すべてのイベントとトランザクションとともに報告されるようになりました。
- 低メモリ breadcrumbs:Application.lowMemory イベントに対する breadcrumbs を自動で追加します。
- ライフサイクル breadcrumbs:ゲームがフォーカスを失い、再び得たタイミングを自動で追跡します。
- セッション改善:例外は crashed ではなく unhandled として正しくマークされ、セッションはゲーム開始から終了まで継続するようになりました。
サードパーティ製プラグインを利用している場合、SDK は Cysharp や DOTween などの一般的なライブラリ由来のスタックフレームを自動的に non-in-app として扱います。これにより、スタックトレースの可読性と issue のグルーピングが大きく改善されます。
破壊的変更
このメジャーリリースでは、2023 年にサポート終了(End of Life)となった Unity 2020 のサポートを終了します。最小サポートバージョンは Unity 2021 になりました。加えて、ゲームまたはサーバーを Ubuntu 20.04 で動かしている場合は、この SDK バージョンへアップグレードする前に Ubuntu 22.04 へ更新してください。sentry-native が新しい Ubuntu バージョン向けにビルドされるようになったためです。破壊的変更の完全な一覧と移行ガイダンスについては、完全な changelog を参照してください。
プラットフォーム対応と導入方法
Sentry Unity SDK は、Windows、Linux、macOS、iOS、Android、Xbox、PlayStation をサポートしています。
導入手順
- GitHub Releases からダウンロード
- Unity SDK ドキュメントを読む
- 更新されたサンプルシーンを確認する
質問やフィードバックがあれば、Discussions にぜひ参加してください。Sentry が初めての方は、インタラクティブな Sentry sandbox を試すか、無料でサインアップできます。
Original Page: Unity SDK 4.0.0: Console support, logs, user feedback and more
IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。


