導入
みなさんは、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 追記 : 一手間掛ければ見れます。ほんのちょっとだけ設定が必要。
設定は簡単です。一度 ⌘ + Click で Button 定義に飛んで、左上の可視性を「パブリックメンバー」から「すべてのメンバー」に変更、右上の言語を「概要」から「C#」

中身がみれた!
Visual Studio Code
Rider
クリックすると、デコンパイルが走る。その後、virtual な関数の内部実装もちゃんと読める。

monodevelop は・・・ごめんなさいインストールするのがメンドクサカッタ。けど、たしか Monodevelop も見れなかったはず。
4/1追記 : MonoDelevep でも Visual Studio for Mac と同様の手順を踏めば見れるはず。(やっぱインストールするのがめんどくさかった)
まとめ
uGUI をいろいろ触っていると、「なんでこの挙動になってるの?どうやってか、内部の関数を override したり、変数書き換えたりできない?」と思うことが多々増えてきます。
そのときに、⌘+クリック一発で内部実装を見に行けるのは、調べ物の時間的に短くなるでしょう。
(ただし、デコンパイルできるのは C# で書かれた範囲だけなのであしからず)