TopDown Engine はトップビュー(見下ろし型)のゲームを作るための Unity のアセットです。
その中のコンポーネントがサンプルシーンの中でどのように用いられているかを調べるために、二つのエディタ拡張を利用しました。
![unity-reference-viewer の検索結果の scene を開くと、先ほど検索対象にしたアセット(プレハブ)がゲームオブジェクトのコンポーネントに設定されていました.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/unity-reference-viewer-の検索結果の-scene-を開くと、先ほど検索対象にしたアセット(プレハブ)がゲームオブジェクトのコンポーネントに設定されていました.png)
今回は具体例として TopDown Engine の ChargeWeapon というコンポーネントが、どのプレハブで使われているかと、そのプレハブがどのシーンで使われているかを、それぞれのエディタ拡張を利用して検索する手順を紹介します。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。
コンポーネントを持つプレハブの検索
TopDown Engine にはたくさんのサンプルゲームがあります。
しかし、サンプル用のプレハブもたくさんあり、ChargeWeapon がどのプレハブで使われているかを手動で探すのは手間がかかるので、公開されているエディタ拡張を導入し検索します。
SearchForComponents.cs の準備
他サイト様のページで、.cs ファイルを配置するだけで利用できるエディタウィンドウが紹介されていたのでそれを使います。
参照:「【Unity】指定したコンポーネントがアタッチされたプレハブを検索できるエディタ拡張「SearchForomponents.cs」紹介 – コガネブログ」
「EDITOR: Want to check all prefabs in a project for an attached MonoBehaviour – Unity Forum」の中に「SearchForComponents.cs」のコードが掲載されているので、コピーして同名のファイル名で保存して、 Unity プロジェクトの Assets フォルダ内の任意の Editor フォルダ内に配置しましょう。
![SearchForComponents.cs を Unity プロジェクトの Assets フォルダ内の任意の Editor フォルダの下位に配置します.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/SearchForComponents.cs-を-Unity-プロジェクトの-Assets-フォルダ内の任意の-Editor-フォルダの下位に配置します.png)
SearchForComponents ウィンドウの利用
メニューに EDITORS が追加されたら、そのサブメニュー SearchForComponents を選択します。
![Unity SearchComponents.cs を追加したあと、追加されたメニュー EDITORS→SearchForComponents を選択します.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/Unity-SearchComponents.cs-を追加したあと、追加されたメニュー-EDITORS→SearchForComponents-を選択します.png)
SearchForComponents のウィンドウが表示されたら、 None (Mono Script) が選択されているフィールドの右側のボタンを押します。
SelectMonoScript というダイアログが隣に表示されたら、検索ボックスで探したい Component の名前を入力し、 Assets 欄に表示されたらそれを選択します。
![Unity 表示された SearchForComponents ダイアログで None の項目の右側のボタンを押してSelectMonoScriptダイアログを表示しコンポーネントを検索指定します.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/Unity-表示された-SearchForComponents-ダイアログで-None-の項目の右側のボタンを押してSelectMonoScriptダイアログを表示しコンポーネントを検索指定します-1024x512.png)
None (Mono Script) だった要素が、選択したコンポーネントに置き換わったら Check component usage ボタンを押します。
![Unity 表示された SearchForComponents ダイアログのCheck component usage ボタンを押すと指定したコンポーネントを持つプレハブを検索します..](https://compota-soft.work/wp1/wp-content/uploads/2023/05/Unity-表示された-SearchForComponents-ダイアログのCheck-component-usage-ボタンを押すと指定したコンポーネントを持つプレハブを検索します.png)
数秒すると、検索が完了して、その結果として指定したコンポーネントを持つプレハブが 2 件表示されました。
その右側の Select ボタンを押すと、そのプレハブが Project ウィンドウ内で選択されます。
![](https://compota-soft.work/wp1/wp-content/uploads/2023/05/Unity-表示された-SearchForComponents-ダイアログの検索結果の右側の-Select-ボタンを押すとそのプレハブがProjectウィンドウで表示されます-1024x422.png)
これで、調べたいコンポーネントを持つプレハブを探すことができました。
プレハブなどのアセットを参照している場所を探す
次は、そのプレハブを使っている場所を探して、シーンを再生してみましょう。
他サイト様「Unityでアセットの参照を高速に調べるツール【ReferenceViewer】|アマガミナブログ」で紹介している unity-reference-viewer を使います。
#他にも試したのですが、検索するためのキャッシュを作成する処理が 2 時間たっても終わる気配がないので諦めました。
注意点
「Unityのguidでアセットの参照を調べる【guidとは?】|アマガミナブログ」に書いてありますが、 Resources.Load 関数でプログラムからアセットを利用する点については検索対象外なので、Resources.Load を使っている箇所は、これとは別に必要に応じて調べると良いでしょう。
unity-reference-viewer のダウンロードと配置
「GitHub – ina-amagami/unity-reference-viewer: Unityアセット参照検索ツール / Asset reference search for Unity」の Code ボタンを押した後に Download ZIP でダウンロードし、その .zip を解凍しましょう。
![github unity-reference-viewer を zip でダウンロードと展開して Unity プロジェクトに配置します.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/github-unity-reference-viewer-を-zip-でダウンロードと展開して-Unity-プロジェクトに配置します-1024x517.png)
解凍したフォルダをリネームなどしてから、 Unity プロジェクトの任意の Assets フォルダ内に配置します。
![unity-reference-viewer を Assets フォルダ内の任意の場所に配置します.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/unity-reference-viewer-を-Assets-フォルダ内の任意の場所に配置します.png)
unity-reference-viewer の実行
unity-reference-viewer を実行するには、Project ウィンドウで対象となるアセットを右クリックし、ポップアップメニューの Find Refrences In Project → By FindStr を選択します。
※ Git で管理している場合は By GitGrep を選択するとより高速に検索できるようです。
![unity-reference-viewer を利用するには、Projectウィンドウで対象のアセットを右クリックしてFind References In Project → By FindStr を選択します.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/unity-reference-viewer-を利用するには、Projectウィンドウで対象のアセットを右クリックしてFind-References-In-Project-→-By-FindStr-を選択します.png)
検索の結果、どこでも使われていない場合は、検索対象のアセットのみ表示されます。
![](https://compota-soft.work/wp1/wp-content/uploads/2023/05/unity-reference-viewer-の検索で参照されている場所が見つからない場合は検索対象のアセットのみ表示されます.png)
さきほど見つけたもう一つのプレハブで同様に検索するとヒットしました。
検索結果の scene をクリックすると Project ウィンドウで選択されました。
![unity-reference-viewer の検索結果をクリックするとそのシーンがProjectウィンドウで選択されました..](https://compota-soft.work/wp1/wp-content/uploads/2023/05/unity-reference-viewer-の検索結果をクリックするとそのシーンがProjectウィンドウで選択されました-1024x363.png)
その scene を開くと、ゲームオブジェクトのコンポーネントの中に、検索対象のプレハブが設定されていました。
![unity-reference-viewer の検索結果の scene を開くと、先ほど検索対象にしたアセット(プレハブ)がゲームオブジェクトのコンポーネントに設定されていました.](https://compota-soft.work/wp1/wp-content/uploads/2023/05/unity-reference-viewer-の検索結果の-scene-を開くと、先ほど検索対象にしたアセット(プレハブ)がゲームオブジェクトのコンポーネントに設定されていました.png)
まとめ
今回は、Unity プロジェクト内で任意のコンポーネントがどこで使われているかを調べる SearchForComponents 、プレハブなどのアセットがどのシーンで参照されているかを高速で調べる unity-reference-viewer エディタ拡張の導入から実行結果までを紹介しました。
これにより、コンポーネントやプレハブがどこで使われているかを探す手間が減り、開発や調査の効率の向上が期待できます。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- TopDown Engine | システム | Unity Asset Store
- 【Unity】指定したコンポーネントがアタッチされたプレハブを検索できるエディタ拡張「SearchForComponents.cs」紹介 – コガネブログ
- EDITOR: Want to check all prefabs in a project for an attached MonoBehaviour – Unity Forum
- Unityのguidでアセットの参照を調べる【guidとは?】|アマガミナブログ
- Unityでアセットの参照を高速に調べるツール【ReferenceViewer】|アマガミナブログ
- GitHub – ina-amagami/unity-reference-viewer: Unityアセット参照検索ツール / Asset reference search for Unity
記事一覧 → Compota-Soft-Press
コメント