【C#】今日から始める Unity + Rider 生活【随時更新】

# 最初に

  どうも、ろっさむです。

  今回は JetBrains という会社から出ているつよつよIDE、`Rider`についてまとめていこうと思います。

  また、記事内の作業環境は以下の通りとなります。

  

  - **JetBrains Rider：2020.2**
  - **Windows：Windows 10**
  - **Mac：Cetalina 10.15.7**

  

  また、本記事で気になったことや書いてほしい機能等ありましたら以下Twitterもしくはメールアドレスまでご一報いただけますと幸いです。

  Twitter:https://twitter.com/4_mio_11
  mail:[mio041100505@gmail.com](mailto:mio041100505@gmail.com)

# Riderとは

  JetBrains Rider(以下 Rider)は、JetBrainsというIntelliJ IDEAやPyCharmなどのIDEを開発している会社から出ているクロスプラットフォーム対応の **.NET IDE**です。対応している環境は以下の通りです。

  - .NET Framework
  - .NET Core
  - Mono

  フレームワークに関しても ASP.NET, ASP.NET Core, Xamarin, WPFなどをサポートしています。

  

## 特徴

  - **マルチプラットフォーム**
  - 高速/多機能
  - 低消費電力モード有り
  - シンタックスハイライト
  - **IntelliSenseサポート**
  - 豊富なコンテキストアクション
  - **Git機能サポート（エディタ内で完結可能）**
  - ターミナル機能サポート
  - **豊富なデバッグ機能**
  - データベースとSQLの操作が可能
  - スニペットやテーマ、コーディングに役立つ2300以上のプラグインが公開されている。
  - **C#7.0までの全てのC# バージョンと、C#8.0の一部機能をサポート**

  

  VSとの比較は以下の公式ページを確認してみてください。

  https://www.jetbrains.com/rider/compare/unity-rider-vs-visual-studio/

  

  


## 価格

  JetBrains Riderは非常に優秀なIDEですが、有料となります。ただし、金額としてはそこまで高くないと思いますし、費用対効果は非常に高いと感じられます。それでも無料で使用できるIDEをお探しの場合は、VSCode又はVSをオススメします。

  [今日からUnity + Visual Studio Codeを用いた快適な開発生活(随時更新中)](https://qiita.com/4_mio_11/items/e7b0a5e65c89ac9d6d7f)

  

  また、JetBrains Riderは最初の30日間はトライアル期間として無料で使用することが可能です。試しに使用してみてから購入を検討するのが良いかと思います。

  

  では、気になるお値段はと言いますと、個人での使用であれば一か月あたり**1600円**となります。

![image-20201127105345672.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/8a54d72b-df86-265c-b2d8-ed0387fcac07.png)


 

  年間での支払いは**16000円**となりますが、翌年以降はどんどん安くなります。

![image-20201127105641360.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/823dbde8-215d-dd64-b1fb-205901dbbb94.png)


  

  更に「特別オファー」として、学生は無料で使用できたり、スタートアップの企業は50%オフで使えたりなどの特典が存在します。詳しくは以下の公式ページをチェックしてみてください。

  

  https://www.jetbrains.com/ja-jp/rider/buy/#discounts?billing=yearly

  

## 提供されているバージョン

  記事執筆時点での最新バージョンは2020.2となりますがもうすぐ2020.3が出るようです。

  また、アーリーアクセスバージョンが存在します。こちらはリリース前のビルドであり、**新機能をいち早く試したい人向け**となります。導入しているプラグインによっては動かなくなる可能性があったり、エラーが含まれている可能性もあるため、基本的には正式リリースのバージョンを使用する方が良いでしょう。

  

  アーリーアクセスバージョンは以下からDLできます。

  https://www.jetbrains.com/ja-jp/rider/nextversion/

  

# Riderの導入方法

  まずは以下の公式サイトからDLを行い、インストールして下さい。

  https://www.jetbrains.com/ja-jp/rider/

  又は、ToolBoxという、UnityHubのようにツール毎のバージョンやインストール状況を管理するアプリを入れてからRiderをインストールしてください。

  https://www.jetbrains.com/ja-jp/toolbox-app/

  
![image-20201127113810218.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/7deacc7d-519c-0042-5dd4-129c064d2d23.png)

  

  インストール時にはユーザーインターフェースのテーマやエディターカラースキーム、キーマップ、を選択することができます。

  インストーラーが立ち上がったら基本的にデフォルト設定で「NEXT」を押して行ってください。

  

  以下の画面の際には、ご自身でお好きな設定を行ってから「NEXT」を押下してください。

![image-20201127114539224.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/92d265e6-33d4-a351-bd87-57c384212cbd.png)



  各設定項目は以下の通りです。

  - **Creaste Desktop Shortcut**：デスクトップにショートカットを作成するか否か
  - **Update context menu**：フォルダなどを右クリックした際に表示されるコンテキストメニューに、`Add "Open Folder as Project"`を追加するか否か
  - **Update PATH variable(restart needed)**：PATH環境変数にRiderのランチャーディレクトリパスを追加するか否か（追加する場合は再起動が必要です）
  - **Create Associations**：`.sln`や`.csproj`などの拡張子とRiderを関連付けるか否か

  

  その後起動した時に、サブスクリプションのライセンスを持っていればアクティベートするか、30日間のお試しバージョン(Evaluate for free)を選択して`Evaluate`を押下します。

  

## Unityへの連携方法

  次にUnity側でRiderを使う設定にする必要があります。

  Riderを使用したいプロジェクトを開き、上部メニューから `Edit > Preferences...`を押下します。

  ![image-20201130110602101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/9bce7dfc-79c6-f892-0d25-42eff59b719d.png)


  次に `Extemal Tools`を開いた状態で、 `Extemal Script Editor`で`Rider`を選択します。

  ![image-20201130110726163.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/e6226a1b-424f-8650-f914-bdd1b0d4fd98.png)

  

  これで対象のプロジェクト内でScriptを開いたりすると自動でRiderが立ち上がるようになります！

  デバッグは右上のナビゲーションバーにあるボタンで操作が可能です。**虫みたいなアイコンをクリックするとアタッチが開始**されます。

  
![image-20201201001921806.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/5a6a47b6-ed97-8aaa-a4d1-d05234228878.png)



# 画面構成


![image-20201130203620829.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/0397abd0-3d44-4d57-d9c4-9bec89525346.png)

  

  1. **Explorer Window**： ファイルやアセット等を整理して表示してくれるビュー。`Ctrl + Alt + L`で表示・非表示の切り替えが可能。ビューの種類切り替えによって表示を変更できる。`Unityビュー`だとUnityエディタ内で見たときと同じプロジェクトツリーで表示されるため非常に見やすいので、おすすめ。
  ![image-20201130211818166.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/58e9aeae-1070-75ae-ac83-e8735fe04df9.png)
  2. **エディター**：コードの確認・編集・Gitでの差分確認などのメイン作業をこのビューで行います。 他のビューをアクティブ状態にしていても`Escape`でエディターに戻ります。リファクタ等を行う際に表示されるアクションリストもこちらに表示されます。
  3. **Tool Bar**：エラーの確認やILの確認、Databaseの編集などがデフォルトで表示されているビューです。特に `Ctrl + Alt + 2`を押下することでエラー一覧をウィンドウ表示にして確認できるので便利です。 `Shift + Esc`で閉じることができます。
  4. **Tool Window**：Gitやデバッグログ、TODO、Terminal等の表示を行います。デフォルトで `Alt + 9`でGitビュー、 `Alt + 5`でデバッグビュー、`Alt + 8`でUnit Testsビューが開かれます。こちらも `Shift + Esc`で閉じることができます。また、それぞれのビューを開いた状態で `Alt + 矢印キー`によりタブの移動が可能です。
  5. **ステータスバー**：左側に最新のイベントメッセージ等が表示され、右側にはIDEのステータスなどを示したり、バックグラウンドタスクの進行状況等が表示されます。`8:12`というのが12行中の8行目を選択しているということです。エンコードの変更やファイルを読み取り専用に変更したりも可能です。緑のチェックマークアイコンにて、現在のソリューションの状態がわかります。エラーの場合は以下の画像のように表示され、エラー箇所へジャンプすることができます。<br>
    ![image-20201130220843811.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/1175bc0e-5ece-1c82-0567-172e92c10fcd.png)
  

  上記のアイコンなどはカーソルを合わせてしばらく待つと、説明が表示されるものがほとんどです。機能が豊富なため、最初は少し戸惑うかもしれませんが、慣れると非常に強力なIDEだと実感できるようになるので、是非基本操作を身に着けていきましょう。

  

  https://pleiades.io/help/rider/Guided_Tour_Around_the_User_Interface.html



# Unity開発で使えるRider機能紹介

   
## Code Vision


 VSで言うと `CodeLens`のようなものです。 

  ソリューション全体の解析を行って、`Find Usages`や 子クラス、Gitでの情報を元に誰がそのクラスを作成・変更したか等の情報群がクラス名・変数・メソッド等の上部に表示されます。

   ![image-20201130225239873.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/9f1c61fe-b3ee-5517-e6b4-a17ca1a4528e.png)

 
  `Find Usages`では、対象のクラスをコンポーネントとして追加しているプレハブや、Unityのシーン、アセット等も即座に確認できます。更にダブルクリックするとUnityエディタ側で直接プレハブ等を開いて確認することができます。

  Unityのメタデータの中身まで見てるからこその機能ですね。

  https://pleiades.io/help/rider/Code_Vision.html

  

## バージョン管理サポート機能

  RiderではGitやSubversion、Perforce等を含むバージョン管理システムをサポートする機能があります。ここでは一例としてGit機能での見方を紹介します。

  ファイル等の内容に変更があった場合にはTool Window表示にてGitビューを有効にすると以下のような表示となります。
  
  
![image-20201130233132494.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/1e10c281-1799-7689-b7d2-0d6644e68699.png)


  

  左側のチェックマークが `Commit`で、その下のUターンしてる矢印がロールバックとなります。スタッシュボタンもついています。ファイルを選択してクリックすると以下のように変更差分がエディタ上に表示されます。
  赤が削除した箇所、あずき色が置き換え、黄色が追加した箇所で一目でわかるようになっています。

  

![image-20201130232852807.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/5de5a451-451d-390a-c5e5-536e94210d8b.png)


  

  コミットボタンを押下すると、コミット用のウィンドウが表示されます。

  

![image-20201130234004367.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/07bd247f-eeb4-f4c1-cf92-c57c0f657236.png)

  

  また、プルリクのレビューや、コードに対するコメント、マージなども可能です。

  https://blog.jetbrains.com/idea/2020/05/intellij-idea-2020-2-early-access-program-is-starting/?_ga=2.167265207.820440953.1606177116-227137106.1605402138#version_control

  

  ちなみにGitの基本操作は上部のナビゲーションバーの左側にあるアイコン群からも可能となっています。

![image-20201201001704257.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/1def70c8-74c3-0bea-477d-3d56bd886917.png)


  左から `pull`, `commit`, `push`, `history`, `rollback` となっています。

  

  

## Code Inspections

  Riderでは、コード解析を行うことでコード上のパフォーマンス的に問題のあるコードの検出や、名前・コメントなどのスペルチェックを行ってくれます。

  例えば、Updateメソッド内で`GetComponent`を使用していた場合は、呼び出しコストが高いため、対象箇所に波線を表示してお知らせしてくれます。または、新しい言語機能が使えたり、効率的なLINQ構文に差し替えが行える箇所でも同様にお知らせしてくれます。これらの箇所で `Alt + Enter`を押下するとアクションリストが表示され、クイックFixで自動修正することができます。

  クイックアクション内ではソリューション内で似た問題があるかどうか、それをFixするかどうかなど、全体を解析した上での修正提案も行ってくれるので非常に便利です。

  

  https://pleiades.io/help/rider/Code_Analysis__Code_Inspections.html

  

## クイックFixを適用する 

  `Code Inspections`でも名前が出てきましたが、こちらの機能はエラーや警告が出た箇所をアクションリストから即時に修正を行える機能となります。

  ハイライトされたコードの左側に以下のようなアイコンが表示されます。

![image-20201130224308225.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/75164768-6c34-97ee-29de-f375dcf081d5.png)エラー：例）必要なファイルがimportされていない等
![image-20201130224334816.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/8561c2c6-ab8f-9f26-b522-e2a2721bfa06.png)警告、提案：例）GetComponentをStart又はAwakeで行うように提案、スペルミスを発見したためリネームの提案
![image-20201130224438600.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/dfa0d706-f0f6-084b-5eda-b47ac269a4be.png)提案：例）リネーム、アクセス修飾子の変更

  

  https://pleiades.io/help/rider/Code_Analysis__Quick-Fixes.html#applying-quick-fixes

  

 
## データブレークポイント（Windows Only）

  特定のプロパティのデータが変化する場合に一時停止する便利機能です。データが変化するけど、どこから変更されているのかがわからない時に有用となる機能なので是非活用していきたいところです。

  

  https://blog.jetbrains.com/dotnet/2020/07/22/data-breakpoints-and-pin-to-frame-debugger-updates-in-rider-2020-2-eap/

  


## Live Template

  Riderではテキストの自動補完機能（つまりスニペット）があり、デフォルトで入っているスニペットを使用したり、自作したりすることができます。

  
![image-20201130225449979.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/873661e5-4afe-d1ec-db27-5f5450fd7601.png)

  

  スニペットの作成は `上部メニューのFile > Settings > Editor > LiveTemplate`から行えるようです。

  

  以下の記事が非常に参考になります。

  https://qiita.com/r-ngtm/items/ba875d32c17c5aacf80c

  

## コード生成

  Unityで開発する際に非常によく作成するメソッドを自動で生成してくれたり（しかも説明付き）、まだ宣言してないメソッド名をコード内に記述した場合に自動で生成したりなど至れりつくせりな機能があります。

  

  ex) `update`と打ち込んだ場合

![image-20201201001017548.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/a2c361f0-ed64-b0e8-b4f1-48019d9dafe3.png)


  
  他にもインターフェースを継承した場合に、実装メソッドを生成してくれたり、プロパティを生成してくれたり……。

  

  https://pleiades.io/help/rider/Code_Generation__Index.html

  

## その他

  このほかにもRiderには様々な便利機能が存在します。

  

  - Markdownプラグインを同梱
  - `.shader`ファイルのサポート
  - Burst 解析
  - デコンパイラ　　　　　　etc...

  

  公式ドキュメントが非常に充実しているため、一度通して見てみると良いかもしれません。

  

  https://pleiades.io/help/rider/Introduction.html

  

  

# おすすめプラグイン

  JetBrains Riderでは自分好みにプラグインを入れることでカスタマイズしていくことができます。`Ctrl + Alt + S`で設定画面を開き、`Plugins`の選択するとプラグインの管理画面を表示することができます。不必要になったプラグインも `Disable`又は`uninstall`が気軽に行えるので、どんどん試していきましょう。

  

## Japanese Language Pack EAP

![image-20201201005037766.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/6b0e6e9f-2ea2-138c-0087-789a32a3f291.png)


  Riderを日本語対応させるプラグインです（私はそのまま使用しているためINSTALLはしていません）。

  

## IdeaVim

![image-20201201003107416.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/db88e96e-4156-1110-9933-636e28a0d902.png)


  Vim操作に慣れ親しんでいる人なら使用したいプラグインです。このほかにもSublimeやAtomなどのユーザーのためのプラグインも存在しています。

  

## CodeGlance

![image-20201201003542125.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/4c5c1529-468f-617f-3eae-83b91d565a14.png)


  エディターの右側にコードの全体を表す小さいビューが表示されるようになります。

  コード内を移動するときとかに便利です。

  

## Key Promoter X

![image-20201201003700135.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/8c8973ad-4b5e-0517-04d5-0183f812c56f.png)


  ショートカットキー全然覚えられん…って人向けです。マウスクリックなどで操作を行った場合に右下に「このショートカットキーで同じ操作できるよ」っていうポップアップを表示してくれたり、そのログをまとめて、Tool Barの方などに「忘れてそうなショートカットキーリスト」を出してくれたりします。

  

## Material Theme UI

![image-20201201003921871.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/d0e2852c-3a88-f013-0dfd-fa1df51a2180.png)


  エクスプローラーウィンドウに表示されるアイコンも含めて、IDEの配色テーマの種類を増やし、セットアップできるプラグインです。気に入るテーマがあるといいですね。

  

## Translation

![image-20201201004347760.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/0473c204-3d91-f07d-1b0c-8e40a72f18ff.png)


  コード内でわからない英単語が出てきた時に右クリックでコンテキストメニューを出すか、 `Ctrl + Shift + Y`で翻訳を行うことができます。オープンソースのコードとか読むときに便利です。

  ![image-20201201004739948](../../AppData/Roaming/Typora/typora-user-images/image-20201201004739948.png)

  

## String Manipulation

![image-20201201004448791.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/bfa12ec7-f5a9-0773-19ad-3c7f3394e0cb.png)


  文字列周りでの操作あれこれが可能になるプラグインです。

  

  

## Rainbow Brackets

![image-20201201004127399.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/33cbf338-5a3b-acb4-e42e-4dc7959f70d2.png)


 
  対応する括弧同士を同じ色にしつつ、他の括弧と色を変えることで視覚的にコードがわかりやすくなるプラグインです。レインボー。

  

## Rainbow CSV

![image-20201201004257410.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/fb9744b1-d677-4ee5-52c0-0bfed86e5afb.png)


  

  CSVファイルにて、項目ごとに色を変えてくれるプラグインです。レインボー。

  

## Nyan Progress Bar

![image-20201201004553167.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/4e3c3ab1-e66b-86ff-2b90-93c82be49399.png)


  ステータスバーにあるプログレスバーがレインボーにゃんこになります。かわいいレインボー。

![image-20201130232948856.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/34c41163-9b5f-d7ca-ecf2-8f4cb615781e.png)


# ショートカットキー

Win用にはなりますが、こちらを作成しました。

→[カンニング万歳！JetBrains Rider逆引きチートシート](https://qiita.com/4_mio_11/items/84b2225a4fa629689404)

また、もし自身で設定したショートカットキーがわからなくなったり、もっとデフォルトで用意されているショートカットキーを確認したい場合は、[ctrl]+[alt]+[s]を押すことでプリファレンス画面を開くことができるので、そこから`Keymap`を選択し、検索窓を使用して確認してみましょう。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36899/9a0715c0-ca70-eb93-e55d-c4c3c63868e1.png)



# 最後に

  有償だけど超強力なIDEであるRider、使いこなせれば趣味も仕事も実際のコーディングの設計の方にパフォーマンスを発揮できるものとなっております。値段以上の価値があると思いますので、まずは30日間お試しで使用してみましょう。

それではここまで読んでいただいて有難うございました。


# 参考サイト

- https://pleiades.io/help/rider/Introduction.html
- [Riderはいいぞ！](https://www.slideshare.net/UnityTechnologiesJapan002/rider-193757507)
- [【Rider】Riderを日本語化する ※外部ソフト不使用【unity】](https://www.unitygamebox.com/?p=437)
- [UnityでJetBrains Riderを使ってみた【Unity】【エディタ】](https://kan-kikuchi.hatenablog.com/entry/JetBrains_Rider)
- [IntelliJ IDEAおすすめプラグイン](https://qiita.com/crossroad0201/items/bf5528cc57cadab67638)