あのResharperやRiderで使われている静的コード分析をCI(=コマンドライン)で、それも無料で使えちゃうんです。 CIで実行することで、PullRequestの自動チェックで走らせて未然に事故を防ぐことが出来ます。
静的コード分析って?
コードを分析して、以下のようなことを教えてくれる機能です。
- nullの可能性がある変数にアクセスしている
- 実行効率の悪い書き方になっている(同じGetComponentを複数回呼んでいるなど)
- ネーミングルールの間違い(lowerCamelで書くべきメンバ変数をUpperCamelで書いている等)
- UnityEngine.Objectに対して?.とか書いちゃってる
- 絶対true/falseになるif文がないか
などなど。
何よりUnityならではの分析もしてくれるのがめちゃめちゃ便利です。
注意点
- 2021/04/13現在、UnityExtensionはWindows環境でしか動作しません。
2021/04/13現在、UnityExtensionはCommandLineTool 2020.3(最新版は2021)でしか動作しません。動くようになりました。(2022/01/05)
対応中のようなので、時間が解決してくれるでしょう。
インストール
この記事を書いた時点ではインストール手順が面倒だったのですが、最新版では簡単になったため中身のない記事になってます。(2022/01/05)
公式の手順
公式のインストール手順はこちら。
公式手順では.NET Core ツールとしての ReSharper コマンドラインツールをインストールして、jb コマンドで InspectCode を実行することもできます。
と書いてありますが、Extensionの導入が出来ないため手動でインストールしましょう。
ダウンロード
UnityExtensionの導入
Resharper UnitySupportの最新版をダウンロードし、nupkgをinspectcode.exeと同じディレクトリに突っ込みます。
使い方
あとはドキュメント通り使うだけです!
最小ではこんな感じです。
inspectcode.exe Project.sln --output=inspectcode.txt --no-build
突っ込んでるPluginのコードは対象外にしたい、みたいな時は
--exclude="Assets/**/Generated/**/*.cs"
などとしてやれば除外出来ます。