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

導入

みなさんは、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# で書かれた範囲だけなのであしからず)

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.