サムザップ内製のUnityデバッグツール「Spica.Debugger」はUI Toolkitで構築。高い拡張性を実現した内部実装をブログで解説

サムザップ内製のUnityデバッグツール「Spica.Debugger」はUI Toolkitで構築。高い拡張性を実現した内部実装をブログで解説

2026.07.24
ニュースゲームづくりの知識Unityプログラム
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

この記事の3行まとめ

  • サムザップ、内製Unity向けアプリケーション基盤「Spica」に含まれるデバッグツール「Spica.Debugger」の詳細をブログ記事で紹介
  • UI Toolkitをベースに構築。ゲーム本体のUIとは独立して動作することや、USSに対応していることなどを利点に挙げている
  • プロジェクト固有の要件に応じて拡張機能を導入する仕組みなどを、実際のコードをもとに解説している

サムザップは2026年7月7日(火)、『UI Toolkitで自作するUnityランタイムデバッグツールの設計と実装』と題した記事を、自社ブログ「Sumzap Engineering Blog」で公開しました。

同社内製のUnity向けアプリケーション基盤「Spica」に含まれるデバッグツール「Spica.Debugger」について、設計思想や内部実装の詳細を語っています。

(画像はブログ記事より引用)

同社では従来、デバッグツールとしてサードパーティ製の「SRDebugger」を使用していましたが、長らく更新が停止していたため最新のUnityバージョンに対応しておらず、また社内で挙がる独自要件を満たす上で拡張性に課題を抱えていたといいます。

こうした背景から内製デバッグツールの開発に踏み切り、「Spica」を構成するパッケージのひとつとして「Spica.Debugger」が誕生。共通基盤を維持しつつ、個々のプロジェクトに応じて拡張できる設計が目指されました。

「Spica.Debugger」の操作画面(画像はブログ記事より引用)

同社が掲げるランタイムデバッガの要件に対応するべく、ツールは「UI Toolkit」をベースに構築。

uGUIではなくUI Toolkitを採用するメリットとして、ゲーム本体のUIを構築する「uGUI」とは独立した動作が可能となることや、「USS(Unity Style Sheets)」(※)でスタイルを管理できること、ListViewにおけるVisualElementを仮想化できることなどが挙げられています。
※ CSS(Cascading Style Sheets)に近い形式で、UIのフォントやカラーといったデザインを定義できるスタイルシート言語

「Spica.Debugger」におけるConsoleページの構成。UI ToolkitのListViewは、画面に表示されるVisualElementのみを生成でき、数千にわたるログを快適にスクロール可能(画像はブログ記事よりスクリーンショットで引用)

「Spica.Debugger」の設定はすべて「DebuggerSettings」というScriptableObjectに集約され、Inspector上にその全貌が一覧されます。

Inspectorには「UI Assets」や「Triggers」など全ての設定項目が掲載されている(画像はブログ記事より引用)

プロジェクト固有の拡張機能は、独自にScriptableObjectを作成してDebuggerSettingsに登録することで自由に追加できます。

拡張可能な機能は、デバッガの起動方法を指定する「Trigger」、バグレポートの送信先を指定する「Report Sender」、ツールのUI構成を定義する「DebugPage」の3種類で、それぞれ抽象クラスを継承することでScriptableObjectを作成します。

たとえばTriggerにおいては、抽象クラスの「TriggerBase」を継承して「端末を振ったらデバッガが開く」という独自クラス「ShakeTrigger」を作成する実装例が紹介されています。

TriggerBaseの実装。ライフサイクル(Initialize/Update/Dispose)と、発火を通知するメソッド「Trigger」が提供される(画像はブログ記事よりスクリーンショットで引用)

そのほか、UI Toolkitのさらなる利点として「ランタイムで動いているデバッガと同一のものをEditor Window内でも表示・操作できる」ことについて、内部の仕組みやユースケースが紹介されています。

詳細は、Sumzap Engineering Blogのブログ記事をご確認ください。

UI Toolkitで自作するUnityランタイムデバッグツールの設計と実装 | Sumzap Engineering Blog

関連記事

Googleの依存関係管理ツール「EDM4U」がサポート終了。Unityによる公式フォーク「EDM」へ完全移行
2026.10.27
3KB以下のゲームを制作・公開。「Pyxel」開発者が新たなオープンソースエンジン「Playload」をリリース。今週のゲーム開発関連ツールまとめ
2026.10.24
約10万個のブロック群を700FPS以上でアニメーションさせるには?Unity 6.5のRenderMeshPrimitivesを用いた実装例、サムザップがブログで解説
2026.10.23
書籍『ゲームエンジンアーキテクチャ』第4版、12/29(火)に発売。3Dレンダリング・フォトリアルライティングの解説を書き下ろし
2026.10.21
「RE ENGINE」をAI時代の開発環境へ。カプコンの次世代ゲームエンジン「REX」を支える5つの新基盤【CAPCOM オープンカンファレンス RE:2026】
2026.10.21
11/17(火)開催の「Unite Tokyo 2026」、一部講演情報が公開。CoreCLR移行やAIエージェント活用などをUnity公式が解説
2026.10.19

注目記事ランキング

2026.10.22 - 2026.10.29
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

乱数
ランスウ プログラムにおいてランダムに生成される数値。アルゴリズムによって導かれ、実際には完全なランダムではないため疑似乱数とも呼ばれる。
VIEW MORE

Xで最新情報をチェック!