1. phi

    Posted

    phi
Changes in title
+[Unity] Unity と Monodevelop を繋いでデバッグしよう!!
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,91 @@
+規模の大きい開発だったり, 途中アサインのプロジェクトの場合
+コードが大きくなりすぎて処理を追うのが大変だったりしますよね?
+
+そんなときに必須な機能がデバッギング( debugging )です.
+
+コード中にブレークポイントを置いて処理を止めて
+その時の変数の中身をみたり, 呼び出し元に遡ったりするあれです.
+
+今回は, Unity でそれやるメモです.
+
+
+## 1. Unity と MonoDevelop を connect する
+
+まずは Unity と MonoDevelop をつなぎます.
+Unity と MonoDevelop を開いた状態で MonoDevelop の再生アイコンをクリックします.
+
+![スクリーンショット 2014-12-16 22.05.57.png](https://qiita-image-store.s3.amazonaws.com/0/7756/c1d50fc1-6346-e353-8160-45839c05439a.png)
+
+
+するとプロセスにアタッチするためのダイアログが表示されます.
+
+`Unity Editor(Unity)` を選択して右下のアタッチボタンをクリックします.
+
+<img src="https://qiita-image-store.s3.amazonaws.com/0/7756/b0e13962-fc80-acba-362d-e5346c13eb76.png" width=460 />
+
+これで connect 完了です.
+ちなみに, 低スペックな PC だと高頻度で失敗します.
+失敗するときは, PC を再起動してクリーンな状態でアタッチすると成功したりします.
+
+早く安定してくんないかな...
+
+
+## 2. デバッグする
+
+MonoDevelop 上でコードの行数の左をクリックするとブレークポイントという赤い玉が生成されます.
+これはブレークポイントといってその場所に処理が来た際に止まってくれという印になります.
+
+![breakpoint.png](https://qiita-image-store.s3.amazonaws.com/0/7756/11d40308-3374-6bae-4da5-a33655059ba0.png)
+
+Unity とアタッチした状態で, Unity のゲーム実行を押すと, このブレークポイントのところで
+処理を止めてくれます.
+
+![スクリーンショット 2014-12-16 21.48.51.png](https://qiita-image-store.s3.amazonaws.com/0/7756/d96dabd3-1867-a279-ade6-730974983ea1.png)
+
+
+ここからがポイントです!
+止めたソースコード上で変数にマウスカーソルを持っていくとそのときの中身を見ることができます!!
+
+![スクリーンショット 2014-12-16 21.47.48.png](https://qiita-image-store.s3.amazonaws.com/0/7756/dd67acea-485c-03e4-bd8c-8d7c2311a9d9.png)
+
+
+また処理を 1step ずつ進めることができます.
+
+![スクリーンショット 2014-12-16 22.00.03.png](https://qiita-image-store.s3.amazonaws.com/0/7756/082972a1-755a-b3d8-b07f-3fd26ff6a6bf.png)
+
+左から
+
+- Run/Pause ... 再生/停止
+- StepOver ... 1行ごとに実行
+- StepIn ... 1行ごとに実行. 関数の場合は内部に飛ぶ.
+- StepOut ... 実行している関数の終わりに飛ぶ.
+
+これで基本的なデバッグができます.
+
+
+## 便利なパネル
+
+表示されていない場合は [Toolbar] -> [ビュー] -> [デバッグウィンドウ] でそれぞれ
+表示できます.
+
+### ローカル変数パネル
+
+ブレーク中の名前空間にあるローカル変数の中身を見ることができます.
+
+![スクリーンショット 2014-12-16 21.49.01.png](https://qiita-image-store.s3.amazonaws.com/0/7756/cd132940-bd7c-f750-e543-d7f5cbfc4699.png)
+
+
+
+### コールスタックパネル
+
+一番便利なのがこの **コールスタック パネル** です.
+これは止めた位置にどの関数経由で来たのかを遡ってみることができます.
+
+![スクリーンショット 2014-12-16 21.50.46.png](https://qiita-image-store.s3.amazonaws.com/0/7756/12b9488f-cb18-d6fd-17a1-acf10babc917.png)
+
+
+基本的にこの **ローカル変数 パネル** と **コールスタック パネル** さえあれば
+大抵の処理は追うことができます.
+
+他にもウォッチやイミディエイトといった便利なものもあるのですが
+それはまた次回ということで.