Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
32
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@phi

[Unity] Unity と Monodevelop を繋いでデバッグしよう!!

規模の大きい開発だったり, 途中アサインのプロジェクトの場合
コードが大きくなりすぎて処理を追うのが大変だったりしますよね?

そんなときに必須な機能がデバッギング( debugging )です.

コード中にブレークポイントを置いて処理を止めて
その時の変数の中身をみたり, 呼び出し元に遡ったりするあれです.

今回は, Unity でそれやるメモです.

1. Unity と MonoDevelop を connect する

まずは Unity と MonoDevelop をつなぎます.
Unity と MonoDevelop を開いた状態で MonoDevelop の再生アイコンをクリックします.

スクリーンショット 2014-12-16 22.05.57.png

するとプロセスにアタッチするためのダイアログが表示されます.

Unity Editor(Unity) を選択して右下のアタッチボタンをクリックします.

これで connect 完了です.
ちなみに, 低スペックな PC だと高頻度で失敗します.
失敗するときは, PC を再起動してクリーンな状態でアタッチすると成功したりします.

早く安定してくんないかな...

2. デバッグする

MonoDevelop 上でコードの行数の左をクリックするとブレークポイントという赤い玉が生成されます.
これはブレークポイントといってその場所に処理が来た際に止まってくれという印になります.

breakpoint.png

Unity とアタッチした状態で, Unity のゲーム実行を押すと, このブレークポイントのところで
処理を止めてくれます.

スクリーンショット 2014-12-16 21.48.51.png

ここからがポイントです!
止めたソースコード上で変数にマウスカーソルを持っていくとそのときの中身を見ることができます!!

スクリーンショット 2014-12-16 21.47.48.png

また処理を 1step ずつ進めることができます.

スクリーンショット 2014-12-16 22.00.03.png

左から

  • Run/Pause ... 再生/停止
  • StepOver ... 1行ごとに実行
  • StepIn ... 1行ごとに実行. 関数の場合は内部に飛ぶ.
  • StepOut ... 実行している関数の終わりに飛ぶ.

これで基本的なデバッグができます.

便利なパネル

表示されていない場合は [Toolbar] -> [ビュー] -> [デバッグウィンドウ] でそれぞれ
表示できます.

ローカル変数パネル

ブレーク中の名前空間にあるローカル変数の中身を見ることができます.

スクリーンショット 2014-12-16 21.49.01.png

コールスタックパネル

一番便利なのがこの コールスタック パネル です.
これは止めた位置にどの関数経由で来たのかを遡ってみることができます.

スクリーンショット 2014-12-16 21.50.46.png

基本的にこの ローカル変数 パネルコールスタック パネル さえあれば
大抵の処理は追うことができます.

他にもウォッチやイミディエイトといった便利なものもあるのですが
それはまた次回ということで.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
32
Help us understand the problem. What are the problem?