はじめに
ついにRider2025.3がリリースされたのですが、新機能の一つとしてUnityにより生成されたILを表示できるようになりました。

Unity code in the IL Viewer
The IL Viewer tool window now shows the intermediate language (IL) code of the assemblies generated and post-processed by Unity, rather than the temporary assemblies generated by an IDE build, helping you analyze compilation results based on what Unity will actually use.
// DeepL翻訳
Unity code in the IL Viewer
ILビューアーツールウィンドウでは、IDEビルドで生成される一時的なアセンブリではなく、Unityによって生成および後処理されたアセンブリの中間言語(IL)コードが表示されるようになりました。これにより、Unityが実際に使用する内容に基づいてコンパイル結果を分析できます。
なおUnityでは...みたいなのはあるあるだと思いますが、今回の新機能でそれも解決できるというわけですね。今回は使い方の紹介と、本当に動いているかの実験をしたいと思います。
使い方
RiderがUnityプロジェクトだと認識している状態で、以下のどれかを行いIL Viewerを開いてください。
- メインメニューから
ツール | IL Viewerを選択します。 ⌃Ctrl⇧ShiftNを呼び出し、IL コードを選択します。- 逆コンパイルされたコードでは、タイプまたはメンバー宣言の上にある IL Viewer コードビジョンメトリクスをクリックできます。
- アセンブリエクスプローラーウィンドウのシンボルを右クリックし、IL Viewer を選択します。
実験
実際にUnityによって生成&後処理されたILが表示されているか確認するために、ILPostProcessorを活用してILを編集してみます。つまり編集後のILがRiderで表示されていたら、Unityによって生成されたものだと判断できるという理屈です。(もし間違っていたらご指摘いただけると幸いです)
light11.hatenadiary.com
// ILPostProcessorによりメソッドの先頭に「UnityEngine.Debug.Log(Service executed: AddService.Add())」を追加する public class AddService { public int Add(int a, int b) { return a + b; } }


RiderがUnityプロジェクトだと認識している状態で、IL Viewerを立ち上げると、正しくILPostProcessorが反映されていることが確認できました。