Unity

Unityでアセットの参照を高速に調べるツール【ReferenceViewer】

Unityでアセットの参照を高速に調べるツール【ReferenceViewer】

特定のアセットがプロジェクト内のどこで使われているかサクっと調べたい時に使えるツールを作りました。

導入方法

いずれかの方法で導入して下さい。

GitHubからダウンロード

スクリプトを書き換えて使用する場合はGitHubからダウンロードして編集して下さい。

「Plugins/ReferenceViewer」フォルダ内の内容をプロジェクトにコピーするか「ReferenceViewer.unitypackage」をダブルクリックしてインポートして下さい。

upmからインストール

Unity2019.3.4f1またはUnity2020.1a21以降のみ使用可能な方法です。

Window > Package Manager を開き、左上あたりの+ボタンから「Add package from git URL…」を選択します。

Package ManagerPackage Manager

表示される入力欄に以下を入力して下さい。

https://github.com/ina-amagami/unity-reference-viewer.git?path=/Assets/Plugins/ReferenceViewer

プロジェクト以下の「Packages/manifest.json」のdepdendenciesセクションに次の行を追加することでもインポート可能です。

{
  "dependencies": {
    "jp.amagamina.reference-viewer": "https://github.com/ina-amagami/unity-reference-viewer.git?path=/Assets/Plugins/ReferenceViewer"
  }
}

特徴

Unity上ではなくOS機能で検索

アセットのguidがファイル内に含まれているかどうかを見ることで、アセット同士の参照を調べることができます。

Unityのguidでアセットの参照を調べる【guidとは?】
Unityのguidでアセットの参照を調べる【guidとは?】不要になったアセットを削除する時など、どこかで使われていないか不安になったりしますよね。guidを使って他のアセットから参照されていないか調べることができます。...

このツールは、上記の記事で解説しているのと同じようにUnityではなくOS側の検索機能を使ってファイルの中身を検索します。

対応しているのはWindows/Macです。

高速なファイル検索

他にも似たようなツールはあるのですが、プロジェクト全体を調べて検索用のキャッシュを作成する仕組みであることが多いです。

プロジェクトの規模次第では数十分から数時間かかってしまうこともあるので、すぐに調べたい時には使えません。

このツールを使う場合、Mac標準の検索機能であるSpotlightを使うと非常に高速に検索できます。

これはMacが検索用のインデックスを常日頃からキャッシュしているためです。

逆に言えばインデックスの作成対象から除外されていたりすると結果がおかしくなるので、正確な検索用にGrepを使用したバージョンも用意してあります。

参考:MacでSpotlightのインデックスを再作成する方法

GitGrep版について

kyubunsさんより、追加の検索方法としてgit-grepを使用したバージョンを追加して頂きました。

git管理されているプロジェクトであれば、Grepよりも高速な検索が可能です。

gitにインデックスされていないファイルは当然ながら対象外なので、その点はご注意下さい。

使い方

参照を検索したいアセットを右クリックして、「Find References In Project」を選択すればOKです。

ReferenceViewerの使い方

Macの場合はSpotlightとGrepが選択できます。

プロジェクトの規模が小さい場合はGrepの方が早く終わることがあります。

フォルダ内検索

フォルダを右クリックして実行した場合は、フォルダ内のアセットを全て検索します。

うっかりAssets内のアセット全てを対象にしてしまった場合も、×ボタンからキャンセルできます。

Projectビューでの選択

結果表示をクリックするとProjectビューで選択される機能もついてます。

プロジェクトビューで選択される

除外設定

そもそも参照を持てないバイナリファイルなど検索対象にする必要がないアセットもあります。

ExcludeSettings.assetに検索結果から除外したいファイルを指定できます。設定を編集する場合はGitHubより直接ダウンロードして導入して下さい。

動作環境

Unity5.6からUnity2019.1で正常動作することを確認しています。