Edited at

Rider(追記:Visual Studio for Mac も) では C# で書かれた Unity 標準のクラスを直接見れる話

More than 1 year has passed since last update.


導入

みなさんは、Unity のコードを何のエディタを使って書いていますか?


  • Monodevelop

  • Visual Studio (for Mac 含む)

  • Visual Studio Code

  • Rider

選択肢はいろいろあると思いますが、私は Rider を使っています。

最近、Unity の C# 部分が公開されるようになりましたね。

http://tsubakit1.hateblo.jp/entry/2018/03/24/140146

ただ、このとき思ったのが、「あれ?いままで見れなかったっけ?」と疑問に思いました。(同僚にも言われて気付いた)


様々なエディタで UnityEngine.UI.Button を開いてみる

大体のエディタは、(Mac だと)⌘を押しながらクラス名をクリックすると、そのクラスの定義に飛ぶことができます。実際にその機能を使って、Button クラスに飛んでみましょう。


Visual Studio for Mac

virtual な関数の中身が見れない。

4/1 追記 : 一手間掛ければ見れます。ほんのちょっとだけ設定が必要。

スクリーンショット 2018-04-01 0.44.45.png

設定は簡単です。一度 ⌘ + Click で Button 定義に飛んで、左上の可視性を「パブリックメンバー」から「すべてのメンバー」に変更、右上の言語を「概要」から「C#」

スクリーンショット 2018-04-01 0.45.09.png

中身がみれた!


Visual Studio Code

virtual な関数の中身が見れない

vsc.png


Rider

クリックすると、デコンパイルが走る。その後、virtual な関数の内部実装もちゃんと読める。

rider.png

monodevelop は・・・ごめんなさいインストールするのがメンドクサカッタ。けど、たしか Monodevelop も見れなかったはず。

4/1追記 : MonoDelevep でも Visual Studio for Mac と同様の手順を踏めば見れるはず。(やっぱインストールするのがめんどくさかった)


まとめ

uGUI をいろいろ触っていると、「なんでこの挙動になってるの?どうやってか、内部の関数を override したり、変数書き換えたりできない?」と思うことが多々増えてきます。

そのときに、⌘+クリック一発で内部実装を見に行けるのは、調べ物の時間的に短くなるでしょう。

(ただし、デコンパイルできるのは C# で書かれた範囲だけなのであしからず)