Upload
ryohei-tokimura
View
5.395
Download
0
Embed Size (px)
Citation preview
Unity&Monodevelopでブレークポイント
2013/5/18
マッドネスラボ代表時村良平
http://madnesslabo.jimdo.com/
Q.
ブレークポイントってなに?
プログラムを実行中に止めて、
ソースコードから、実際にどういう値が入ってるかチェックできる機能
一行単位でプログラムを進めたりして、
値の変化をトレースできる
プログラムする上では、基本で重要な機能
Unity&Monodevelopでも使えます。
Q.
どうやるの?
実演
● 止めたい部分のソースコードの行番号の左あたりをクリック
赤い印で「ブレークポイント」がつく
(空白行は無視されるので注意)
● ツールバーの「 Attach to Process 」をクリック
実演
● 「 Unity Editor 」を選択して、「 Attach 」
実演
● Unityエディター上で、ブレークポイントの部分が実行されると、プログラムが止まる
● Monodevelopではこんな感じで、フォーカスされている。
実演
● 気になる値に、マウスカーソルをフォーカスすると、
中身を確認するサブウィンドウが出てくる。
実演● 「 Locals 」ウィンドウで
ローカル変数の値や、クラスのメンバ変数の中身が確認できる
実演● 「 Call Stack 」ウィンドウで、
ブレークポイントまで到達するプログラムの流れが確認できる
実演● 「 Call Stack 」のスタックをダブルクリックすると、
スタックをさかのぼって、そこでの値も確認できる
実演● 一時停止したプログラムを進めるには
一行ずつ進める
一行ずつ進め、
下位スタックも開く。
現在のスタックを終了させ、上位スタックまで戻る
実演● ツールバーの、歯車アイコンで
次のブレークポイントまで通常実行(スキップ)
実演● ブレークポイントは途中から追加、削除できるので
組み合わせて使うと良い。
新しいブレークポイントまでスキップ
新しいブレークポイント
を追加
実演● ツールバーの、赤い ×ボタンで
「 Attach to Process 」を終了
Unityは、インスペクターで値を確認できるので、
なくても、わりとなんとかなる。
とはいえ、知っておくと便利。
Debug.Logを書くのがめんどくさい場合とか
エラーが起きた場合に、
その部分にブレークポイントを仕掛けてスタックをさかのぼって、エラーの原因を追ったり
始めて使うクラスにブレークポイントを仕掛けて、
スタックから処理の流れを把握したり
( SendMessageもトレースしてくれるので、ソースコードでは把握しづらい場
合に有効)
色々応用は効くので、必要に応じて使ってみよう
追記
VisualStudioなどと違って、通常設定だと、 Unityエディターからフォーカスが外れると、プログラムが自動的に一時中断してしまう。
ブレークポイントを多用していると、Monodevelopと Unityエディターのフォーカスを切り替えるのが面倒になる。
その場合は、 PlayerSettings->BuildSettingsから「 RunInBackGround 」のチェックをオンにしてやればよい。
ただし、これはスマホなどにも影響するので、リリースビルド時にはオフにしたほうよさそう。スクリプトから動的に、エディタ時のみバックグラウンド実行をオンにするのが理想?