Mono Editor でUnityをデバッグする
About
VisualStudioを利用してUnityでの開発を行う方が多々いらっしゃるようです。しかしながらVisualStudioで最も利用したい機能の1つであるブレークポイント/デバッガは、標準ではUnityと連動して利用することができません。ところがUnityをインストールする際に一緒にインストールすることのできるMonoエディタ(以下Mono)では、VisualStudioと同じようにソースコード中にブレークポイントを打って、デバッグの実行時に実行を一時停止させることなどができます。ここではその最低限の方法について解説します。
VisualStudioでデバッグするためのサード製のプラグインがありますが有料ですし、なによりExpressユーザ(主に学生と思われる)は、VisualStudioのプラグイン機能を利用することができません。1万~3万円程度なので現実的に買えなくはないですがExpressユーザはVisualStudioのライセンスも買わなければいけないですしね。学生ユーザはアカデミックのVisualStudioやUnity、その他のお得ライセンスを積極活用したほうが良いでしょう。
- VisualStudio向けサード製プラグイン
- 公式にも掲載されています(日本語翻訳verが掲載されていなかったため記事にしています)
HowTo
まず対象のスクリプトをMonoから開く必要があります。エディタをVisualStudioなどに変更している場合、Unityからスクリプトを開こうとすると、変更したエディタが起動してしまいます。この場合、標準のエディタをMonoに変更してからスクリプトを開くか、Monoを起動して、対象のスクリプトが含まれるソリューションを開く必要があります。
シーンに追加され実行されるスクリプトの適当な個所にブレークポイントを打ちます。その後、メニューバーから「Run > Attach to Process」を選択するか、ツールバーから該当するアイコンを選択して実行します。ツールバーには画像の赤い枠で囲ったボタン群が関連するモノになっています。
表示されたウィンドウのProcessNameの一覧に、"Unity Editor (Unity)"があることを確認します。該当する項目を選択し、"Attach"から関連付けを完了します。
最後に、UnityEditorからデバッグを実行します。実行した後、ブレークポイントを打った箇所が処理される時点で、実行が止まります。変数が現在保有している値なども確認することができます(VisualStudioと同等の操作)。ブレークポイントで停止した後、実行を継続するには[Continue]をメニューないしツールバーから実行します。
実行が確かに停止しているかどうか確認するには、[ProjectSettings > PlayerSettings > Run In Background*]にチェックを入れます。パーティクルなど適当に動き続けるオブジェクトを追加すると分かりやすいです。