☝️ デバッグ UI を書かずに Unity のデバッグ環境を成立させる設計と実装
📌 この記事は Zenn に投稿した内容のアーカイブです。 はじめに Unity で開発していると、 実行中にパラメータを触りながら挙動を確認したい という場面は、ほぼ毎日のように出てきます。 最初のうちは、Unity 標準の仕組みを使って 簡単な Runtime Debug UI を用意すれば十分でした。 ただ、プロジェクトが進み、 デバッグ項目が増える 調整対象が増える 複数人で同時に触る という状況になるにつれ、 「その場しのぎ」で作ったデバッグ UI が、確実に足を引っ張る ようになってきます。 この段階で欲しくなったのが、 壊れにくく、拡張しやすく、 プロジェクトと一緒に「育てていける」デバッグ基盤 でした。 この記事では、 そのために設計した 自作 Runtime Debug システム について、 設計意図と実装の要点 を中心にまとめます。 何が問題だったのか 問題の本質は、「UI をどう実装するか」 ではありませんでした。 本当に困っていたのは、 Debug 項目の追加・削除が面倒 どこに何のデバッグ設定があるのか分からない 不要になった項目が整理されず、蓄積していく という 運用面の破綻 です。 特に後半になると、 「デバッグ環境のせいで、デバッグそのものがやりにくい」 という、本末転倒な状態になりがちでした。 目指したゴール 今回の設計で目指したゴールは、かなり明確です。 UI を書かずに Debug 項目を追加できる 構造が自然に整理され続ける 無効化・除去が簡単 プロジェクト規模が大きくなっても破綻しない つまり、 「運用しても壊れない設計」 を最優先にしました。 全体構成 全体の流れは、次のようになります。 起動 ↓ RuntimeInitializeOnLoadMethod ↓ DebugManager 自動生成 ↓ DebugOption 自動登録 ↓ Reflection による項目収集 ↓ UI 自動生成 & バインディング ここで重視したのは、 ...