(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

Unityでの開発効率が劇的に上がるRiderの利点や便利機能【Unity】【エディタ】【JetBrains Rider】


このエントリーをはてなブックマークに追加


この記事でのバージョン
JetBrains Rider 2020.3.4


はじめに

UnityのエディタはMonoDevelopのサポートが終わって以来、

おそらくVisual Studioを使うのが一般的ですが、



自分はJetBrains(会社名)のRiderというエディタを使っています。



Riderは色々と機能が豊富で開発効率が段違いになるので、

今ではRider無しでは開発が考えられないぐらいです。


そして今回はそのRiderの自分が思う利点や便利機能についてまとめた記事です!


なお、導入については以下の記事をご参照の事。



ちなみにRiderは基本的に有料ですがお試し期間もあるので、とりあえず試してみる事をオススメします。

(実際に使ってみないと便利さというのは分かりづらいので)


C#ファイルやディレクトリの作成、移動、削除(同時にmetaファイルも)

アプリ上でC#ファイルやディレクトリの作成、移動、削除をする事が可能ですが、

f:id:kan_kikuchi:20220218071939p:plain


この時、各アセットの設定やアセット同士の関係を記録している

metaファイルも同時に作成、移動、削除されます。

つまりシーン上のオブジェクトやPrefabにスクリプトをAddしていても

参照が外れない(Unity上で操作しているのと変わらない)という事になります。


また、Unityに戻るまではUnity上でのコンパイルも発生しないため無駄な待ち時間も減ります。


スクリプトのテンプレが作れる File Templates

File Templatesというファイルのテンプレートを作る機能があります。



しかもだた定型文のファイルを作るだけではなく、生成時にある程度内容を変更出来るので、

f:id:kan_kikuchi:20210209081136g:plain


より効率的にC#スクリプトファイルの作成が出来ます。


強力な予測と補完

コーディングを補助する協力な予測と補完が付いています。

例えばStartやUpdate、OnCollisionEnterといったUnity(MonoBehaviour)特有のメソッドはもちろん

f:id:kan_kikuchi:20220220173522g:plain


既にある変数のGetterの実装プロパティへの変換

f:id:kan_kikuchi:20220220173949g:plain


メソッドのoverirde

f:id:kan_kikuchi:20220220175126g:plain


型には合わせた変数名や初期値の予測など、

f:id:kan_kikuchi:20220220175150g:plain


様々な場面で痒いところに手が届くという感じになっています。


名前空間の参照(using)の自動設定

名前空間の参照(using)を自動で追加してくれます。


例えばListを使おうとしたらSystem.Collections.Genericを追加、

Imageを使おうとしたらUnityEngine.UIを追加という感じです。

f:id:kan_kikuchi:20220220175516g:plain


自動で追加されるという事は、そもそもusingを追加してなくても

使える物は常に候補に出てくるという事なので、かなりコーディングの効率が上がります。


参照元も含めた一括リネーム(名前の変更)

変数名やクラス名のリネームをCtrl + Rも簡単に行えますが、ただ変えるだけでなく、

その変数やクラスを使ってる所(クラス外でも)もしっかりリネームされますし、

クラス名を変えるとファイル名(もちろんmetaファイルも)も変わるため、

基本的にはエラー等を出さず気楽にリネームが行えます。

f:id:kan_kikuchi:20220220181214g:plain



よく使うプログラムのショートカットLive Templates(コードスニペット)

よく使うプログラムをショートカットとして保存して

ある程度動的に内容を変更しながら使えるLive Templatesという機能があります。

f:id:kan_kikuchi:20210201075239g:plain


プログラムのヒント表示&自動修正をするコードヒント

使ってない変数を強調表示したり、

f:id:kan_kikuchi:20220221080551j:plain


名前空間の参照(using)が足りない場合CompareTagを使わないタグの比較など、

問題がある場合に横に電球マークを表示して教えてくれます。

しかも、Alt + Enterを押すだけでそれらの自動修正までする事が出来ます。

f:id:kan_kikuchi:20220220181230g:plain


このコードヒントには色々な物がありますが、

次項からその中でもよく使う物を紹介したいと思います。


LINQを使った簡潔なコードへの自動変換

現状よりもLINQを使った簡潔なコードへ変換出来る際にコードヒントが出る事もあります。

f:id:kan_kikuchi:20220220184548g:plain


何となくで書いて良い感じのLINQにしてもらうという事も出来ますし、

こういう書き方が出来るのかと勉強にもなりますが、

無理に1行にして可読性が落ちる場合もあるので注意が必要です。


switchの各項目(ラベル)の自動追加

switchを使う際には各項目(ラベル)の自動追加をするコードヒントが出るので、

簡単に全ての項目を列挙する事が出来ます。

f:id:kan_kikuchi:20220221074300g:plain



タイプミスの指摘と自動修正

変数名やメソッド名などでタイプミスをしている時にもコードヒントが使えます。

f:id:kan_kikuchi:20220220185550g:plain


もちろんその変数やメソッドを使用している箇所も同時に変わるので、気軽にタイポが直せます。


interface等の不足しているメンバの自動追加

interfaceを実装する時などに実装必須なメンバが足りない時にもコードヒントが使えます。

特にinterfaceが自前で無く、必要な物がパッと分からない時に役に立ちます。

f:id:kan_kikuchi:20220220183953g:plain



ファイル、クラス、メソッド、シンボル等の何でも検索

Shiftを2回連続で押すと検索ウィンドウが開き、ファイル、クラス、メソッド、シンボル等の

プログラムに関する事ならだいたい何でも検索出来ますし、

入力中に候補も予測してくれるので検索の効率が格段に上がります。

f:id:kan_kikuchi:20220221074322j:plain



全文検索

Ctrl + Shift + fで全文検索が可能です。

コメント等を元に検索を行いたい場合に便利です。

f:id:kan_kikuchi:20220221074331j:plain



現在開いてるファイルの選択

個人的に地味に便利だと思っているのが現在開いてるファイルがExploerで選択される機能です。

f:id:kan_kikuchi:20220221074358p:plain


検索でファイルを開いた時等にも選択されるので、

その周辺のファイルも確認したい時や、同じフォルダにスクリプトを作成したい時等にも使えます。


シーン上やPrefabなども含めたスクリプトの使用場所検索

Ctrl + bを押す事で、指定したクラスやメソッド等がどこで使われているかを検索する事が出来ます。

しかもPrefabやシーン上のオブジェクトにAddされている物まで検索が可能です。

f:id:kan_kikuchi:20220221075359j:plain



クラスやメソッド等の宣言先に飛ぶ(必要なら逆コンパイルも)

Ctrlを押しながらクリックする事で指定しクラスやメソッド等の宣言先を開く事が出来ますが、

この時Unity独自のコード等であっても逆コンパイルし、中身を見ることもできます。

f:id:kan_kikuchi:20220221075925g:plain



varの実際の型や引数等の補助表示

varが実際何の型なのかや、引数で何を指定しているかの表示するが出来ます。

f:id:kan_kikuchi:20220221080851p:plain


ちなみに、右辺でnewしているなどの明らかに型が分かる場合等には表示されないので、

必要な時に必要なだけ表示される感じになっています。


TODOの設定、一覧表示

TODOやBUGと記載したコメントは普通のコメントとは別の色で表示され、

f:id:kan_kikuchi:20220223114718j:plain


後から一覧で確認する事が出来ます。

f:id:kan_kikuchi:20220223114947j:plain



ブレークポイントに条件や依存先を設定

指定した行に来たら処理を停止するいわゆる普通のブレークポイントだけでなく、

一定の条件の時にしか止まらない物や他のブレークポイントに依存する物も簡単に設定できます。

f:id:kan_kikuchi:20211011160123j:plain




別PC、異なるOS間での設定の同期

Riderの設定を違うPCと同期(同じに)する機能があり、

MacやWindowsといった異なるOS間で同期する事も可能です。

f:id:kan_kikuchi:20210220081315j:plain




Git対応

アプリ上で諸々のGit操作をする事が可能です。

f:id:kan_kikuchi:20210414091816j:plain




シェーダーのサポート

シェーダー(.shaderファイル)のサポートもしているので、

C#とエディタを変えずに実装する事が出来ます。

f:id:kan_kikuchi:20220221095245j:plain



プラグイン

Riderにはコード内の英語を翻訳する物(SDK等の自前じゃないコードを読む時に便利)や、

f:id:kan_kikuchi:20220221095532j:plain


対応する括弧同士を同じ色にする物など、

f:id:kan_kikuchi:20220221095541j:plain


色々な無料のプラグインが提供されており、拡張していく事でさらに便利になります。