Unityで不要になったアセットを削除する時など、どこかで使われていないか不安になったりしますよね。
プレハブやテクスチャの参照(どこで使われているか)を調べる時はref検索というものが利用できます。
しかし規模の大きいプロジェクトだと検索に時間がかかる上に、Unityが強制終了することもあります。
そういった場合にオススメしたいのがguidを使った検索です。
guidはアセットのmetaファイルに書かれている固有のIDで、アセットの参照はこのguidで設定されています。
事前準備
guidで検索を行うには、プレハブやシーンをバイナリではなくテキストで保存するように設定されている必要があります。
メニューからEdit > Project Settings > Editor > を開き、Asset Serializationが「Force Text」になっていることを確認
アセットの参照を調べるツール
これから説明する方法で毎回調べるのは大変なので、ツールを作りました。
参照の調べ方
試しにプレハブの参照を調べてみます。
guidを確認する
metaファイルを適当なテキストエディタで開きます。
「guid:」の後ろに書かれている16進数の文字列がguidです。こちらをコピーしておきます。
Finderで調べる(Mac専用)
Mac専用の方法にはなってしまいますが、Finderの検索機能(Spotlight)を使用すればファイルの中身に特定の文字列が含まれているかどうか高速に検索できます。
「Assets」フォルダを対象にして、guidを検索窓に入れて検索します。
プレハブ本体(ここでは「SEButton.prefab」)のmetaファイルの他に「ToolMain.unity」が出てきました。
これでToolMainシーンで使用されていることを確認できました。
何箇所で参照されているか確認する
こちらもファイルをテキストエディタで開いて、guidで検索します。
今回は1箇所で使われていました。
Unity上で確認する
実際にシーンファイルを開いて確認してみます。
コンポーネント上で参照が紐付けられていることを確認できました!
Resources内のアセットについて
Resources内のアセットはResources.Load()でスクリプトからロードすることもできるので、スクリプト側でもファイルパスなどで検索して使われていないか調べておくと安全です。