Unity スクリプトやプレハブなどのリソースが使用されているかを自動検索するツール

概要

Unityでオブジェクトが利用されているファイルを自動検索する方法を書いた。
yasuaki-ohama.hatenablog.com
しかし、この方法だと「JumpBoard.prefab」がどこで使われているか知りたい時

$ find . -name JumpBoard.prefab.meta
$ cat ./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.prefab.meta
$ git grep -l f1f94e603ef11234d88f2d5bcf4b23d3

と3回もコマンドを打たなければならないため面倒だ。

そこで今回は以下のシェルスクリプトを実行するだけで簡単に検索できるツールを作成した。

使い方1(検索)

findUsedObject.sh · GitHubをダウンロードしてプロジェクト以下に置く
以下のようにコマンドを打ち実行する。

$ ./findUsedObject.sh JumpBoard.prefab
./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.prefab.meta
Assets/Scenes/Stage/0/0_0.unity
Assets/Scenes/Stage/0/1_0.unity
Assets/Scenes/Stage/0/3_0.unity
Assets/Scenes/Stage/0/6_0.unity
Assets/Scenes/Stage/1/1_1.unity
Assets/Scenes/Stage/1/1_5.unity
Assets/Scenes/Stage/1/1_6.unity
Assets/Scenes/Stage/1/1_7.unity
Assets/Scenes/Stage/2/2_5.unity
Assets/Scenes/Stage/3/3_4.unity
Assets/Scenes/Stage/3/3_7.unity
Assets/Scenes/Stage/4/4_4.unity
Assets/Scenes/Stage/5/5_2.unity
Assets/Scenes/Stage/6/6_3.unity
Assets/Scenes/Stage/7/7_1.unity
Assets/Scenes/Stage/7/7_4.unity
Assets/Scenes/Stage/7/7_7.unity
Assets/Scenes/Stage/8/8_5.unity
Assets/Tutorial/Scenes/0_0_Debug_Object.unity

このオブジェクトが利用されているステージがわかる

使い方2(複数検索)

特定の文字列が入っているオブジェクトを利用しているファイルを全て列挙する

$ ./findUsedObject.sh JumpBoard       
./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.cs.meta
Assets/Object/AddMoveObject/JumpBoard/JumpBoard.prefab
Assets/Object/AddMoveObject/JumpBoard/JumpBoardE.prefab

./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.mat.meta
Assets/Object/AddMoveObject/JumpBoard/JumpBoard.prefab
Assets/Object/AddMoveObject/JumpBoard/JumpBoardE.prefab
Assets/Scenes/Stage/1/1_6.unity

./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.png.meta
Assets/Object/Goal/Game_Clear.mat

./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.prefab.meta
Assets/Scenes/Stage/0/0_0.unity
Assets/Scenes/Stage/0/1_0.unity
Assets/Scenes/Stage/0/3_0.unity
Assets/Scenes/Stage/0/6_0.unity
Assets/Scenes/Stage/1/1_1.unity
Assets/Scenes/Stage/1/1_5.unity
Assets/Scenes/Stage/1/1_6.unity
Assets/Scenes/Stage/1/1_7.unity
Assets/Scenes/Stage/2/2_5.unity
Assets/Scenes/Stage/3/3_4.unity
Assets/Scenes/Stage/3/3_7.unity
Assets/Scenes/Stage/4/4_4.unity
Assets/Scenes/Stage/5/5_2.unity
Assets/Scenes/Stage/6/6_3.unity
Assets/Scenes/Stage/7/7_1.unity
Assets/Scenes/Stage/7/7_4.unity
Assets/Scenes/Stage/7/7_7.unity
Assets/Scenes/Stage/8/8_5.unity
Assets/Tutorial/Scenes/0_0_Debug_Object.unity

./Assets/Object/AddMoveObject/JumpBoard/JumpBoardAnimation.cs.meta
Assets/Object/AddMoveObject/JumpBoard/JumpBoard.prefab
Assets/Object/AddMoveObject/JumpBoard/JumpBoardE.prefab

./Assets/Object/AddMoveObject/JumpBoard/JumpBoardE.prefab.meta
Assets/Scenes/Stage/6/6_7.unity
Assets/Scenes/Stage/7/7_5.unity
Assets/Scenes/Stage/7/7_6.unity
Assets/Scenes/Stage/7/7_7.unity
Assets/Scenes/Stage/8/8_7.unity
Assets/Tutorial/Scenes/0_0_Debug_Object.unity

./Assets/Object/AddMoveObject/JumpBoard.meta

使い方3(複数検索 + 特定の拡張子だけ表示)

$ ./findUsedObject.sh JumpBoard unity 
./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.cs.meta

./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.mat.meta
Assets/Scenes/Stage/1/1_6.unity

./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.png.meta

./Assets/Object/AddMoveObject/JumpBoard/JumpBoard.prefab.meta
Assets/Scenes/Stage/0/0_0.unity
Assets/Scenes/Stage/0/1_0.unity
Assets/Scenes/Stage/0/3_0.unity
Assets/Scenes/Stage/0/6_0.unity
Assets/Scenes/Stage/1/1_1.unity
Assets/Scenes/Stage/1/1_5.unity
Assets/Scenes/Stage/1/1_6.unity
Assets/Scenes/Stage/1/1_7.unity
Assets/Scenes/Stage/2/2_5.unity
Assets/Scenes/Stage/3/3_4.unity
Assets/Scenes/Stage/3/3_7.unity
Assets/Scenes/Stage/4/4_4.unity
Assets/Scenes/Stage/5/5_2.unity
Assets/Scenes/Stage/6/6_3.unity
Assets/Scenes/Stage/7/7_1.unity
Assets/Scenes/Stage/7/7_4.unity
Assets/Scenes/Stage/7/7_7.unity
Assets/Scenes/Stage/8/8_5.unity
Assets/Tutorial/Scenes/0_0_Debug_Object.unity

./Assets/Object/AddMoveObject/JumpBoard/JumpBoardAnimation.cs.meta

./Assets/Object/AddMoveObject/JumpBoard/JumpBoardE.prefab.meta
Assets/Scenes/Stage/6/6_7.unity
Assets/Scenes/Stage/7/7_5.unity
Assets/Scenes/Stage/7/7_6.unity
Assets/Scenes/Stage/7/7_7.unity
Assets/Scenes/Stage/8/8_7.unity
Assets/Tutorial/Scenes/0_0_Debug_Object.unity

./Assets/Object/AddMoveObject/JumpBoard.meta