Unity の機能
この 3 分間のビデオを見て、Matt Ellis が Unity 開発用の JetBrains Rider の機能の概要を説明します。
Unity エクスプローラー
デフォルトでは、Rider で Unity プロジェクトを操作する場合、エクスプローラーツールウィンドウはプロジェクトを構成するすべてのアセットを表示する Unity ビューに切り替わります。
主に、Unity ビューのパッケージノードには、プロジェクトのルートにある Packages フォルダーの内容が表示されます。これには、Rider で編集できる manifest.json ファイルのみが含まれている可能性があり、保存すると、Unity によってプロジェクトが更新され、追加したパッケージが含まれます。さらに重要なのは、パッケージノードには、プロジェクト内で参照されているすべてのパッケージも表示されることです。Unity はさまざまなパッケージタイプをサポートしており、Rider はそれらをすべて表示します。Rider および Unity パッケージの詳細については、ブログ投稿(英語)を参照してください。

ソリューションビューに切り替えると、プロジェクトのスクリプト部分のみが表示されます。
Unity エディターの制御
Rider と Unity エディター間でコンテキストを切り替える時間を短縮するため、Unity エディターの機能の一部は、右上隅にある Unity ツールバーの Rider に直接表示されます。

ツールバー
再生モードの制御 : Play、一時停止、ステップの各ボタンは、Unity エディターの同じボタンに対応しており、まったく同じように機能します。
Unity 関連のアクションリストを使用した重要な Unity 関連のアクションにアクセスする :Unity を開始 : Unity エディターを起動し、Rider で開かれたソリューションに対応する Unity プロジェクトを開きます。
カバレッジで Unity を開始する : 有効なコードカバレッジサポートを使用して Unity エディターを起動し、Rider で開かれたソリューションに対応する Unity プロジェクトを開きます。
Unity プロセスへの接続 ... : たとえば、デバッグや単体テストの目的で、実行中の Unity インスタンスにアタッチします。
Unity 設定 ... : Rider の Unity エンジン設定ページをすばやく開きます。
Unity ログウィンドウ ... : ログビューアーを開きます。
Unity 以外の該当する UI を表示 : 完全な Rider UI と最小化された UI の間で切り替えます(Unity に関連しないすべての UI 要素は非表示になります)。
エディターヘルパー
コードビジョンが無効になっている場合、JetBrains Rider は、Unity によって暗黙的に使用されるクラス、メソッド、フィールドの Unity ガターアイコンを表示します。

UnityEngine.Color、UnityEngine.Color32、Color.HSVToRGB で定義された色はエディターでハイライトされます。また、色の使用状況で Alt+Enter を押し、パレットから色を選択を選択してカラーエディターを開き、色を視覚的に変更することもできます。

使用箇所の検索
Unity プロジェクトでは、使用箇所の検索 Alt+F7 機能が、Unity シーン、アセット、プレハブから取得されたデータで拡張されます。イベントハンドラーとして使用されるクラスまたはメソッドを検索すると、JetBrains Rider は、それが Unity ファイル内で使用されている場所を、タイプ、コンポーネント名、親ゲームオブジェクトごとにグループ化して表示します。
コードビジョン
コードビジョンは Unity もサポートします。有効にすると、どのクラス、メソッド、フィールド (Unity で設定されたフィールド値を含む)、さらにはアセットが暗黙的に使用されているかを確認できます。コードビジョンは、Unity エディターへのナビゲーションを提供します。

パフォーマンス分析
JetBrains Rider は、パフォーマンスに敏感な領域、つまりフレームごとに呼び出されるイベント関数(Update、FixedUpdate、LateUpdate など)やコルーチンメソッドを表示します。これらの頻繁に呼び出されるメソッド内では、パフォーマンス指標によって、GetComponent、Find、SendMessage などの既知の高負荷処理にも注意が向けられます。これらの処理では、初期化を Start または Awake に移動するコンテキストアクションが実行されます。
コードビジョンが無効になっている場合、パフォーマンスインジケーターがガターに表示されます。

有効にすると、インジケーターをコードビジョンメトリクスとして表示できます。

Unity には、非常に頻繁に呼び出されるメソッドがいくつかあります。これらのメソッドはパフォーマンスが重要なコンテキストとして扱われ、エディターのガターでハイライト表示されます。

パフォーマンス分析は、JetBrains Rider 設定 Ctrl+Alt+S のページの頻繁に呼び出されるコードでパフォーマンス分析を有効にするで有効にして構成できます。
イベント関数
コードの生成メニュー Alt+Insert で Unity イベント関数を使用してイベント関数を生成できます。このアクションは、Unity ベースのクラス内のどこからでも Alt+Enter から利用できます。

自動補完は、Unity ベースのクラスでメソッドを宣言するときにイベント関数名を提案し、メソッドシグネチャーを含むように拡張します。
MonoBehaviourなどの既知の Unity クラスから派生したクラス内でイベント関数の入力を開始します。
Unity ベースのクラスのイベント関数とパラメーターの説明は、ツールチップとクイックドキュメントに表示されます。

インスペクションとクイックフィックス
JetBrains Rider は、不明なシーン、タグ、レイヤーの警告を表示します。

ソリューション全体の分析が有効になっている場合、JetBrains Rider は暗黙的に使用されるフィールドとイベント関数を理解し、アクセスされていないものとしてハイライトしません。
空のイベント機能は、デッドコードとして表示され、削除するクイックフィックスがあります。
NetworkBehaviour以外のクラス内でSyncVarAttributeを使用すると、エラーとして扱われます。未解決のシンボルを使用してシリアル化フィールドを作成するには、クイックフィックスが推奨されます。

JetBrains Rider は、すべてのイベント関数が正しいシグネチャーを持っていることを保証します。間違った署名をハイライトし、修正するためのクイックフィックスを提供します。

JetBrains Rider は、
tagプロパティで非効率的な文字列リテラル比較を使用しないように警告し、これをCompareTagへの呼び出しとして書き換えるクイックフィックスを提供します。
MonoBehaviourまたはScriptableObjectから派生したクラスの新しいインスタンスを作成するためにnewキーワードを使用しようとすると、JetBrains Rider によって警告が表示されます。代わりにgameObject.AddComponent<T>()またはScriptableObject.CreateInstance<T>()を使用することをお勧めします。[InitializeOnLoad]属性と[InitializeOnLoadMethod]属性用のインスペクションもあり、正しいメソッドまたはコンストラクターシグネチャーがあることを確認します。また、クラスに静的コンストラクターがない場合、JetBrains Rider は冗長な[InitializeOnLoad]属性をグレー表示し、属性をすばやく削除するか、コンストラクターを作成するクイックフィックスを備えています。
JetBrains Rider の Unity 固有コードインスペクションの完全なリストは、こちらでご覧いただけます。
外部アノテーション
多くの Unity 固有のアセンブリには、これらのアセンブリを使用するときにコードインスペクションを改善するために外部アノテーションのアノテーションが付けられています。
UnityEngine.dll、UnityEngine.Networking.dll、UnityEditor.dll の属性でマークされたコードを暗黙的に使用されるものとして処理します。
Component.gameObjectとObject.nameを null でないとマークします。null 値の分析に役立つアサーションメソッドとしてマークされた
Debug.Assert(たとえば、Debug.Assert(x != null)の後に「値を null にすることはできません」)。Debug.AssertFormat、LogFormatなどは、文字列フォーマットヘルパー機能を取得します。アサーションメソッドとしてマークされた
Assertions.Assertメソッドは、null 値分析を支援します。EditorTestsWithLogParser.ExpectLogLineRegexは正規表現ヘルパー機能を取得します。現在、さまざまな属性には、特定の基本型から派生するために適用されるクラスが必要です。例:
[CustomEditor]にはEditorの基本クラスが必要です。Unity 2017.2 のモジュール化された UnityEngine アセンブリのサポート。
.shader ファイルのサポート
JetBrains Rider は、Cg/HLSL ブロック、暗黙的なシェーダキーワード、ステージ固有のローカルキーワード、および _KEYWORD_DEFINED 接尾辞を持つプリプロセッサーディレクティブのサポートを含む、.shader ファイル内の ShaderLab(英語) 構文のサポートを提供します。
ShaderLab 構文の構文と構文エラーのハイライト。デフォルトのカラースキームはエディター | カラースキームの切り替え | ShaderLab 設定ページ Ctrl+Alt+S で変更できます。

コード補完 :

ブレースのマッチングとハイライト、コメント / コメント解除、Ctrl+/、To-Do エクスプローラーのサポート。


[Cg/HLSL]
CGPROGRAM/CGINCLUDEブロックおよび .cginc ファイルの構文のハイライト。Cg/HLSL ブロック内の [Cg/HLSL] コード補完。

どこでも検索は、シェーダーファイル内のシンボルに移動できます。

シェーダーキーワードを有効または無効(英語)にして、プリプロセッサーブランチでのハイライトを切り替えることができます。

Rider はシェーダコンテキストウィジェットにシェーダパスの名前を表示するため、シェーダがどこから使用されているかがわかります。

アセンブリ定義ファイルのサポート
アセンブリ定義ファイル(.asmdef)は、プロジェクトスクリプトを複数のアセンブリに分割してコンパイル時間を短縮するために使用されます。Unity は、スクリプトに変更を加えると、必要なアセンブリのみを再構築します。
JetBrains Rider は、.asmdef ファイルのサポートを提供します: JSON スキーマ検証、コード補完、使用箇所の検索、名前変更リファクタリング、参照要素のナビゲーション、自己参照およびファイル名 / アセンブリ名の不一致に対するインスペクション / クイックフィックス。.asmdef ファイルのサポートの詳細については、ブログ投稿(英語)を参照してください。

ライブテンプレート
JetBrains Rider は、シリアル化されたバッキングフィールドを持つ Unity プロパティの sprop や、Unity シリアル化フィールドの sfield など、Unity 固有のライブテンプレートをいくつか提供します。
ファイルテンプレート
JetBrains Rider は、新しい C# スクリプト、テスト、シェーダーファイル用のファイルテンプレートを多数提供しています。

Unity ログ

Rider が Unity エディターに接続されると、Unity ツールウィンドウが使用可能になります。ウィンドウを開くには、メインメニューから を選択するか、Unity ツールバーの Unity 関連のアクションリストを使用します。
Unity ツールウィンドウのログタブは、Unity のコンソールを Rider に持ち込みます。このタブには Unity のログエントリが表示され、イベントが Unity に記録されると更新されます。
右側のウィンドウの出力部分には、現在選択されているログエントリの内容が表示されます。Rider はコンテンツをインタラクティブにするため、ログエントリに記述されているソースファイル、クラス、メソッド、プロパティに移動できます。
ログエントリは、再生または編集モードのイベント、警告、エラー、メッセージなどのイベントタイプでフィルタリングできます。
UnityYAMLMerge のサポート
デフォルトでは、JetBrains Rider は UnityYAMLMerge ツールを使用して、Unity プロジェクトのすべての YAML ファイルをマージします。の Rider 設定で追加の UnityYAMLMerge パラメーターを設定できます。

コミット前のチェック
Unity プロジェクトでは、コミット前のチェックにより、バージョン管理に入る前に一般的な問題を検出することで、よりクリーンで安定したリポジトリが確保されます。詳細については、JetBrains、Unity、GitHub ページの対応する記事(英語)を参照してください。
関連ページ:
エクスプローラーツールウィンドウ
エクスプローラーツールウィンドウを使用すると、さまざまな視点からソリューションを確認し、新しい項目 (ディレクトリ、ファイル、クラスなど) の作成、エディターでのファイルのオープン、必要なコードフラグメントへの移動などのさまざまなタスクを実行できます。このツールウィンドウのほとんどの機能には、コンテンツペインのコンテキストメニューコマンドとして、関連するショートカットを介してアクセスします。このビューには、作成されたスクラッチファイル、クエリコンソール、拡張スクリプトを管理できるスクラッチとコ...
dotCover で Unity テストの範囲を分析する
JetBrains Rider には、JetBrains dotCover をベースにしたカバレッジ解析ツールがバンドルされています。カバレッジ解析の詳細については、.NET コードのカバレッジ分析を参照してください。インストールとライセンス:dotCover は、JetBrains Rider の単一のバンドルプラグインとして提供され、IDE のインストール中に自動的に追加され、有効になります。プラグインを無効にする場合は、プラグイン設定ページを開き、インストール済みタブに切り替えて、dot...
Unity アプリケーションのデバッグ
JetBrains Rider を使用すると、条件付きおよび依存ブレークポイント、ウォッチ、式評価などを含むデバッガーのすべての機能を使用して、Unity ゲームスクリプトをデバッグできます。ローカルコンピューターで Unity アプリケーションをデバッグするデバッグするプロジェクトが Unity エディターで開かれていることを確認します。JetBrains Rider で、対応する Unity プロジェクトソリューションを開きます。必要なコード行の横のガターをクリックしてブレークポイントの設定...
カラーアシスタンス
JetBrains Rider には、コード内のカラー定義を扱うための一連の機能が用意されています。色がどのように定義されているかに関係なく、エディター内のすべての色の値には、対応する色のアイコンがあります。カラーアイコンの上にマウスを置くと、他の形式でカラー値を確認できます。色は補完リストでも視覚化されています。ハイライトされている色の定義が表示されている場合は、専用のビジュアルエディターを使用して色の定義を変更できます。色の定義を変更するキャレットをハイライトされた色の定義に置きます。を押し...
使用箇所の検索のシンボル
このコマンドを使用すると、ソリューションおよび参照アセンブリ内の 1 つ以上のシンボルのすべての使用箇所を検索できます。シンボルの宣言またはその他の使用箇所から検索を開始できます。このコマンドは、ソリューションエクスプローラー、構造ウィンドウ、その他のツールウィンドウから呼び出すことができます。シンボルの使い方を探すエディターのシンボルにキャレットを配置するか、構造ツールウィンドウでシンボルを選択します。以下のいずれか 1 つを実行します: メインメニューからを選択します。右クリックし、コンテキス...
コードビジョン
コードビジョンは、型および型メンバーのさまざまなメトリクスを収集し、その情報を宣言の上または後に表示します。メトリクスの位置、最大数、その他の設定は、JetBrains Rider 設定のページで構成できます。すべてのメトリクスをクリックして追加の詳細を表示したり、メトリクスにカーソルを合わせて詳細をクリックして非表示のメトリクスを表示したり、コードビジョン設定にアクセスしたりできます。キーボードでコードメトリクスの詳細にアクセスする場合は、すべてのナビゲーション関連のメトリクスに次に移動ショ...