🖋️

Unity 開発者向け Visual Studio からの Rider 乗り換え案内

2022/01/24に公開

数ヶ月前から Unity 開発の IDE を Visual Studio から Rider にしてみました。しばらく使ってみてどっちか選ぼうとした結果、無事、Riderはいいぞおじさんになりました! せっかくなので乗り換えまわりのアレコレを書いてみます。

環境

  • Window 10
  • Visual Studio 2019
  • Rider 2021.3
  • Unity 2021.2

使った感触

安定している、挙動が気持ち速い

Visual Studio でも基本は問題なかったのですが、複数ウィンドウ開いている場合などたまに調子が悪くなる場合がありました。極端なときはハングアップしたりしてたのですが Rider では今のところ安定しています。また起動時などもなんとなく挙動が速い気がします。

UI がモダン

全体的に UI がすっきりしてモダンな印象を持ちました。たとえば CodeLens(クラスや関数の定義の上に1行出てくるやつ、Rider 用語では Code Vision )の表示がすっきりしていて、関数の override が usage と別れているところなんかが気に入ってます

Visual Studio


Rider

スペルチェッカー有用


いままで気にしてなかったのですが Rider ではデフォルトでONになっていて思いのほかよくスペルミスしていることに気付かされました。 とても助かっているので今後ほかのエディタを使う場合でも同様の機能入れとこうと思いました。Visual Studio でもプラグインなどでできると思います。

カスタマイズ前提のデフォルト設定?

Visual Studio では特に設定を変える必要がなかったのですが Rider ではデフォルトでかなり多くの機能をONにしている印象でちょっとうるさく感じました。もしかしたら機能の存在に気づかず使われないケースを考慮して 「最初に全部見せるからお好みでオフにして」 という意図かなと思いました。

自分はあまりツールのカスタマイズをせずにデフォルト設定に慣れようとするのですが、Rider では我慢せず 「ある程度は設定する前提になっている」 と思っておくのがいい気がしました。

最初にやったこと

Unity の外部エディタ設定

Unity Editor の Edit > Preferences > External Tools > External Script Editor でRiderを指定します。
これで Unity からソースを開くエディタがRiderになります。

Keymap の設定

Rider 上で Ctrl+Alt+S(Settings)> KeymapVisual Studio にします。
これで基本的な操作は Visual Studio の感覚で操作できます。
一部、異なる部分もあります(後述)

素直に行かなかったところ

Visual Studio と異なるショートカットキー

Keymap の設定を Visual Studio にしても異なるものがありました。使っていて引っかかったところを紹介します。

機能 Visual Studio Rider
Usingの削除と並べ替え Ctrl+R, Ctrl+G Ctrl+Alt+O
Ctrl+R, G
Ctrl+R, Ctrl+G
*VisualStudioと同じになりました(2023/06/05追記)
ドキュメントのフォーマット Ctrl+K, Ctrl+D Ctrl+Alt+Enter
Ctrl+K, F
Ctrl+K, Ctrl+F
Ctrl+K, D
Ctrl+K, Ctrl+D
選択範囲のフォーマット Ctrl+K, Ctrl+F (範囲選択中)
Ctrl+Alt+Enter
Ctrl+K, F
Ctrl+K, Ctrl+F
Ctrl+K, D
Ctrl+K, Ctrl+D
すべてに移動 Ctrl+T
Ctrl+,
Ctrl+T(Ctrl+,は最近開いたファイル)

コードのフォーマットの範囲は Visual Studio ではショートカットキーが別れていたのですが Rider では範囲選択中かどうかで判断するようになっています。 Rider にはさらに強力な Reformat and Cleanup Code もあります。Cleanup が強力すぎて自分は使ってないですがちゃんと設定すれば有用そうな気がします。

また、Visual Studio 内からファイルを開くのに Ctrl+, を使っていたのですが Rider では最近開いたファイルの検索になってしまい、まだ開いていないファイルにマッチせずやり方を変えました。Ctrl+T がほぼ同じ機能なのですが Rider では Visual Studio よりも多くのものにマッチしてしまい使いにくかったので、結局 Ctrl+Shift+T(Navigate > File) を代わりにしています。

コードのサジェストが強力(すぎる)

Rider や ReShaper を検討し始めるきっかけはこの辺の方も多いのではないでしょうか。
C#の新しめ文法もしっかり勧めてくるので「へー、それは知らなかった」みたいなこともありました。

また、すべてではないですが「Why is Rider suggesting this?」でその提案の根拠を示すページへのリンクも飛べます。

前述のとおり可能な提案はできるかぎり表示してくるような挙動なので、リンク先の根拠を見て合わないなと思ったら同じメニューから提案レベルを下げるのも全然ありだと思います。

インレイヒントは Push-To-Hint

メソッドの引数名や暗黙の型を表示してくれるインレイヒントがデフォルトでは常に表示になっています。慣れるかなと思ってしばらく頑張ってみたもののさすがにうるさすぎたので Push-To-Hint (Ctrlキーを長押ししているときだけ表示)に落ち着きました。

.idea フォルダの .gitignore 設定

Visual Studio の .vs フォルダのように Rider は .idea フォルダを生成しますが github のテンプレート(Unity.gitignore)には含まれていないので git での扱いに困ります。

Rider が .idea フォルダ内に気を効かせた .gitignore を生成するのでとりあえず気にせず .idea も除外しないのが簡単でいいかなと思います。

.idea フォルダをまるまる除外するのもありなのですが、フォルダ内には共有しといたほうがいいファイルもあるようです(RiderのページJetBrain全般のgitignore

ちなみに「Riderのフォルダ除外しよう(必要なやつだけ手動で足そう)」というPRもあります。しかしどうも .idea フォルダ内のファイル構成が個人用と共有用でうまく別れていないため、なかなか単一のテンプレートにはしにくいという背景があるようです。

他の方法として、 gitignore.io というサイトでUnity,Riderと指定するとそれっぽい .gitignore が出てくるのでこれを使うのも良さそうです。
https://www.toptal.com/developers/gitignore

Discussion