24
Unity&Monodevelop ブレークポイント 2013/5/18 マッドネスラボ代表 時村良平 http://madnesslabo.jimdo.com/

Unity&monodevelopでブレークポイント

Embed Size (px)

Citation preview

Page 1: Unity&monodevelopでブレークポイント

Unity&Monodevelopでブレークポイント

2013/5/18

マッドネスラボ代表時村良平

http://madnesslabo.jimdo.com/

Page 2: Unity&monodevelopでブレークポイント

Q.

ブレークポイントってなに?

Page 3: Unity&monodevelopでブレークポイント

プログラムを実行中に止めて、

ソースコードから、実際にどういう値が入ってるかチェックできる機能

Page 4: Unity&monodevelopでブレークポイント

一行単位でプログラムを進めたりして、

値の変化をトレースできる

Page 5: Unity&monodevelopでブレークポイント

プログラムする上では、基本で重要な機能

Unity&Monodevelopでも使えます。

Page 6: Unity&monodevelopでブレークポイント

Q.

どうやるの?

Page 7: Unity&monodevelopでブレークポイント

実演

● 止めたい部分のソースコードの行番号の左あたりをクリック

赤い印で「ブレークポイント」がつく

(空白行は無視されるので注意)

Page 8: Unity&monodevelopでブレークポイント

● ツールバーの「 Attach to Process 」をクリック

Page 9: Unity&monodevelopでブレークポイント

実演

● 「 Unity Editor 」を選択して、「 Attach 」

Page 10: Unity&monodevelopでブレークポイント

実演

● Unityエディター上で、ブレークポイントの部分が実行されると、プログラムが止まる

● Monodevelopではこんな感じで、フォーカスされている。

Page 11: Unity&monodevelopでブレークポイント

実演

● 気になる値に、マウスカーソルをフォーカスすると、

中身を確認するサブウィンドウが出てくる。

Page 12: Unity&monodevelopでブレークポイント

実演● 「 Locals 」ウィンドウで

ローカル変数の値や、クラスのメンバ変数の中身が確認できる

Page 13: Unity&monodevelopでブレークポイント

実演● 「 Call Stack 」ウィンドウで、

ブレークポイントまで到達するプログラムの流れが確認できる

Page 14: Unity&monodevelopでブレークポイント

実演● 「 Call Stack 」のスタックをダブルクリックすると、

スタックをさかのぼって、そこでの値も確認できる

Page 15: Unity&monodevelopでブレークポイント

実演● 一時停止したプログラムを進めるには

一行ずつ進める

一行ずつ進め、

下位スタックも開く。

現在のスタックを終了させ、上位スタックまで戻る

Page 16: Unity&monodevelopでブレークポイント

実演● ツールバーの、歯車アイコンで

次のブレークポイントまで通常実行(スキップ)

Page 17: Unity&monodevelopでブレークポイント

実演● ブレークポイントは途中から追加、削除できるので

組み合わせて使うと良い。

新しいブレークポイントまでスキップ

新しいブレークポイント

を追加

Page 18: Unity&monodevelopでブレークポイント

実演● ツールバーの、赤い ×ボタンで

「 Attach to Process 」を終了

Page 19: Unity&monodevelopでブレークポイント

Unityは、インスペクターで値を確認できるので、

なくても、わりとなんとかなる。

とはいえ、知っておくと便利。

Page 20: Unity&monodevelopでブレークポイント

Debug.Logを書くのがめんどくさい場合とか

Page 21: Unity&monodevelopでブレークポイント

エラーが起きた場合に、

その部分にブレークポイントを仕掛けてスタックをさかのぼって、エラーの原因を追ったり

Page 22: Unity&monodevelopでブレークポイント

始めて使うクラスにブレークポイントを仕掛けて、

スタックから処理の流れを把握したり

( SendMessageもトレースしてくれるので、ソースコードでは把握しづらい場

合に有効)

Page 23: Unity&monodevelopでブレークポイント

色々応用は効くので、必要に応じて使ってみよう

Page 24: Unity&monodevelopでブレークポイント

追記

VisualStudioなどと違って、通常設定だと、 Unityエディターからフォーカスが外れると、プログラムが自動的に一時中断してしまう。

ブレークポイントを多用していると、Monodevelopと Unityエディターのフォーカスを切り替えるのが面倒になる。

その場合は、 PlayerSettings->BuildSettingsから「 RunInBackGround 」のチェックをオンにしてやればよい。

ただし、これはスマホなどにも影響するので、リリースビルド時にはオフにしたほうよさそう。スクリプトから動的に、エディタ時のみバックグラウンド実行をオンにするのが理想?