おれ、Unity2Dでゲーム作るんだ。

Unity2Dをメインに、覚書などを記事にしていきます。

Debug.Logなどで出力箇所を楽に表示させる(実行メソッド名を取得する)

プログラムが複雑になってくると、各メソッドがどのような順番で実行されているのか知りたくなることがあります。

まぁ、そんなときには単純に、各メソッドの先頭に、Debug.Log("Method A")なんてそれぞれ書いていきがちなのですが、 いろんな所に仕込む際に、メソッド名を書き換えるのが面倒くさい。

実行メソッド名を取得

そんなときには、 System.Refletion.MethodBase が持っている、GetCurrentMethod 使うのがおすすめ。 Nameのプロパティに実行されたメソッド名が入っているので、

MethodBase.GetCurrentMethod().Name

で実行メソッド名が取得できます。

実行クラス名も取得

その他、実行クラスも取得。

GetType().Name

ざっと、

Debug.LogFormat("{0} - {1} - {2}", name, GetType().Name, MethodBase.GetCurrentMethod().Name);

こんな風に書いておけば、あとは各メソッドの先頭にコピペしまくれば、どこから呼び出されたかすぐ分かります。

f:id:xev:20201126124046p:plain