RiderFlowはいいぞ！

# RiderFlowとは？

RiderFlow（RiderFlow for Unity）はJetBrains社が開発した無料のUnityエディタープラグインです。RiderFlowを使うことで、Unity Editorにおいて、Scene内の素早い移動と検索、Scene内のGameObjectの関係把握、効率的なSceneやAssetの管理が可能になります。

RiderFlowの主な機能を次に示します。

 * Hierarchy WindowにおけるGameObject管理機能
 * Scene View management toolbar
 * スマートエディター
 * GameObjectのReplace
 * Find Usages
 * Search Everywhere


RiderFlowは無料でどなたでも利用可能です。（本投稿執筆時である2022/12/01時点において）

※JetBrains社製のC#/.NET用のIDEであるRiderは、有償です。

# バージョン/動作確認環境

* Unity 2021.3.6f1
* JetBrains RiderFlow 2022.1.5.248

# 導入方法

RiderFlowはプロジェクトごとに導入するツールです。

本原稿執筆時（2022/12/01）、RiderFlowをプロジェクトに導入する方法は、次の3通りがあります。

 * [AssetStoreから導入](https://www.jetbrains.com/help/riderflow/getting-started.html#bdfc9aa3)
 * [Unityパッケージを公式サイトからダウンロードして導入](https://www.jetbrains.com/help/riderflow/getting-started.html#ec3bbd25)
 * [UPMを使っての導入](https://www.jetbrains.com/help/riderflow/getting-started.html#ec3bbd25)

筆者のおすすめ導入は、「UPMを使っての導入」です。「AssetStoreからの導入」と「Unityパッケージを公式サイトからダウンロードして導入」では、RiderFlowのコードがプロジェクトのAssets以下に配置されてしまいます。これは、バージョン管理やプロジェクト管理において、トラブルの原因になりえます。一方、「UPMを使っての導入」の場合、プロジェクトのAssets以下には、RiderFlowのコードは配置されません。「Packages/manifest.json」と「Packages/packages-lock.json」に、利用しているRiderFlowのバージョンが記載されるのみです。ぜひ、「UPMを使っての導入」で導入することを検討してください。

また「UPMを使っての導入」は、リリース当初はなかった導入方法です。リリース当初に公開された古い紹介記事にはない方法ですので、注意してください。

# Hierarchy WindowにおけるGameObject管理機能

RiderFlowは、Hierarchy WindowにおいてGameObjectを効率的に管理できる次の機能を持っています。

 * Section
 * Bookmark
 * Note

Sectionにより、Hierarchy ViewのGameObject群の階層構造をビジュアル的に管理しやすくできます。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f343132352f30353934666338622d346233622d316330322d333437322d3864396238306436316661342e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/ed69d1fc-4912-3d55-dc86-a11fea263481.png)

Bookmarkにより、特定のGameObjectをHierarchy Viewからお気に入りでき、Bookmarks Viewで一覧表示できます。またお気に入りしたGameObjectは、後述の「Scene view management toolbar」とも連携できます。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f343132352f62326638633961632d643736662d623965312d636636342d3134333161653032663732392e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/f88bf246-8876-d224-33f5-8422efcab3d7.png)

Noteを使えば、GameObjectにメモを残せます。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f343132352f31363364333130322d313633392d336536342d383063392d3437633432623831633765622e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/ecced0c7-1637-cd7b-a323-3371e68bd77d.png)


各機能のより詳細な説明は、筆者の次の記事をご覧ください。

https://qiita.com/RyotaMurohoshi/items/384640d1be03ac268d35

公式ドキュメントはこちら。

https://www.jetbrains.com/help/riderflow/manage-gameobjects-hierarchy-view.html

# Scene view management toolbar

RiderFlowを導入するとScene Viewに、次の図中枠で囲った「Scene view management toolbar」が表示されます。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f343132352f64386461643934642d643264342d393565632d386130332d3639643565336161363337622e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/6179365a-643f-f245-cfd7-a19efabf8872.png)

このtoolbarから以下を行うことができます。

* アセット検索とDrag&Drop
* カメラプリセットの登録と切り替え
* ブックマークオブジェクトへのフォーカス

「カメラプリセットの登録と切り替え」の様子は次の通りです。

![rider_flow.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/bf3fef9c-bffa-03ef-3a7c-b614d281eefa.gif)

残りの機能の様子や詳しい使い方は、詳しくは筆者の次の記事をご覧ください。

https://qiita.com/RyotaMurohoshi/items/22dda1eb7a4704940b9c

公式ドキュメントはこちら。

https://www.jetbrains.com/help/riderflow/scene-view-management-toolbar.html

# スマートエディター

RiderFlowは、シンプルなエディターである「スマートエディター」を備えています。スマートエディターは、C#ファイルをさっと編集したい場面で活躍します。

Project WindowでC#のファイルを選択し、右クリックで表示されたメニューから、「Open Code Editor」を選んでください。次のようなスマートエディターのWindowが開きます。このWindow上でScriptを閲覧・編集できます。

![スクリーンショット 2022-12-01 23.15.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/9f58fbb1-03f2-d87e-ec53-17fae5da7107.png)

スマートエディターでは先の図のように、シンタックスハイライトがされ、エラーツールチップも表示されます。限定的ではありますが、いくつかのキーボードショートカットによる入力支援も備えています。C#ファイルをさっと編集・確認するのに非常に有用です。

しかし、注意点としてスマートエディターは「Rider」が備えている非常に強力なコード補完、クイックフィックス、リファクタリング機能などはありません。これらの機能が必要な場合、有償ツール「Rider」を導入することをおすすめします。Riderはいいぞ！

公式ドキュメントはこちら。

https://www.jetbrains.com/help/riderflow/smart-editor.html

# GameObjectのReplace

RiderFlowを導入することで、Scene ViewもしくはHierarchy Viewから、GameObjectをReplaceできます。

Hierarchy Windowにおいて、ReplaceしたいGameObjectを右クリックし、メニューから「Replace GameObject」を選択します。もしくはScene Viewにおいて、ReplaceしたいGameObjectを右クリックし、「Replace with...」を押します。そうすると、次のようなReplace後のGameObjectを選択するWindowが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/2cbd410a-bacc-1a99-317a-4cd18307d3e3.png)

置き換えたいGameObjectを選択し、「Replace」ボタンを押すことで、Replaceが実行されます。

RiderFlowによる、GameObjectのReplaceは「単純に置き換える」だけではありません。Replace前のGameObjectを参照する箇所は、Replace後のGameObjectを参照するように、更新されます。これにより、Scene内のGameObjectの参照を壊さずにGameObjectのReplaceが可能です。なお、GameObjectを複数選択して、一気にReplaceを行えます。

また、Replaceする際は、「名前を保持するかどうか」などの設定を、次の画像のように細かく設定可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/3d392d8c-8e73-6ea4-6581-09232de0a4c5.png)

公式ドキュメントはこちら。

https://www.jetbrains.com/help/riderflow/refactor-gameobjects.html

# Find Usages

RiderFlowは、対象のScriptやPrefabなどのAssetが、どこで利用されているのか一覧化する「Find Usages」という機能を持っています。

Project Windowにおいて、探したい対象を右クリックし、メニューから「Find Usages」を選択します。そうすると、次のように対象のAssetが利用されている箇所が、Find Usages Windowで表示されます。

![ryotamurohoshi_section_6_1_find_usages_window.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/edad9832-e704-741b-5ae0-af09fbb37894.png)

Scene内に設置されていても、Prefabの一部となっていても、表示されていることに注目してください。表示されている利用箇所の項目をクリックすると、Project WindowやHierarchy Windowの利用箇所がハイライトされます。

RiderFlowは、「Find References in Scene」にも似た、「Show Usages in Scene」という機能も持っています。これを使うことで、対象のAssetが該当Scene（もしくはPrefab）においてどこで利用されているのか、視覚的に確認ができます。Project Windowにおいて、Sceneでの利用箇所を表示したい対象を右クリックし、メニューから「Show Usages in Scene」を選択します。次の画像のように対象のScene ViewのCameraが検索結果にフォーカスされます。

![ryotamurohoshi_section_6_3_show_usages_in_scene.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/441c077b-f175-650e-c623-5f49f908cd85.png)

また、Scene view management toolbarに、検索結果のGameObjectの名称が追加で表示されます。対象Assetは、該当Scene（もしくはPrefab）において複数箇所で利用されている場合もあります。その場合、Scene view management toolbar中の「↑」と「↓」ボタンを押すことで、利用されているGameObjectを切り替えられます。

公式ドキュメントはこちら。

https://www.jetbrains.com/help/riderflow/find-usages.html

# Search Everywhere

RiderFlowは、キーワードで対象を検索する「Search Everywhere」という機能を持っています。

Menu Itemの「Rider Flow > Search Everywhere」を選択する、もしくは次のキーボードショートカットにより、次の画像のような「Search Everywhere」用のWindowが表示されます。

 * Win : Ctrl+Alt+N
 * Mac : Command+Option+N


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/2b904bb5-3d9a-8d92-dee9-d4bd544ac899.png)

検索キーワードをテキストボックスに入力すると、Windowに検索結果が表示されます。Windowには次のようなタブがあり、検索の対象範囲を変更できます。

 * 「All」プロジェクト中の全て
 * 「Hierarchy」 現在開いているScene
 * 「Files」 Script, Prefab, Modelなどのプロジェクト中のAsset
 * 「Action」 Unityプロジェクト中のアクション

また次の図のように、タブごとに異なるフィルターがあり、設定できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/60ed6bf1-e457-31da-145b-4d7010b8bc02.png)

Window中の検索結果の要素をクリックすると、Scene中のGameObjectがフォーカスされたり、プロジェクト中のAssetがハイライトされます。

表示されている検索結果がPrefabの場合、Drag&DropでSceneに配置できます。同様に、検索結果がScriptなどの場合、Scene上のGameObjectにDrag&Dropでアタッチできます。

Search Everywhereを使って、効率的にプロジェクト中のAssetを探し、Sceneに配置できます。

公式ドキュメントはこちら。

https://www.jetbrains.com/help/riderflow/search-everywhere.html

# RiderFlowはどこにデータを保存するのか

RiderFlowのユーザーが登録した情報

* Hierarchy Windowで登録したBookmarkやNotes
* Scene Viewで登録したCamera Presetの情報

などはどこに保存されるでしょうか。これらの情報は、プロジェクト内の「Assets/RiderFlow.UserData」以下のパスに保存されます。本原稿執筆時（2022/12/01）においては、「SceneやPrefab中に情報を残さない」という点が大事なポイントです。何かしらの理由でRiderFlowをプロジェクトから取り除くことになった時、RiderFlowをアンインストールし、「Assets/RiderFlow.UserData」を削除すれば終わりです。「RiderFlowをアンインストールしたことで、SceneやPrefabが壊れてしまう」ということにはなりません。

また、視点を変えれば、プロジェクト内の「Assets/RiderFlow.UserData」以下のパス下のファイル群を、Gitなどでバージョン管理すれば、BookmarkやNotes、Camera Presetの情報をチームに共有できるということでもあります。

筆者は、ツールやプラグインを導入する時に、「そのツールは簡単にプロジェクトから外せるか」という点も導入の検討材料にしています。どんなに便利なツールやプラグインでも、「問題が出た時やプロジェクトの実情に合わなくなった時、プロジェクトから外せなくて大きな負債になる」のならば、導入へのハードルは高くなってしまいます。その点、RiderFlowは簡単にプロジェクトから外すことが可能です。

# まとめ

RiderFlow（RiderFlow for Unity）はJetBrains社が開発した無料のUnityエディタープラグインです。RiderFlowに興味をもった方は、ぜひUnityプロジェクトに導入して試してください。

# 関連リンク

* 公式サイト : https://www.jetbrains.com/ja-jp/riderflow/
* 公式動画 : https://www.youtube.com/watch?v=YxasogqhzHA
* アセットストア : https://assetstore.unity.com/packages/tools/level-design/riderflow-218574

# 補足

本投稿は、UniBook14の筆者の「RiderFlowのススメ」をベースに、更新・編集・記事の分割など再構成を行った投稿です。