Unity

Unityのguidでアセットの参照を調べる【guidとは?】

Unityのguidでアセットの参照を調べる【guidとは?】

不要になったアセットを削除する時など、どこかで使われていないか不安になったりしますよね。

プレハブやテクスチャの参照を調べる時はref検索というものが利用できます。

しかし、規模の大きいプロジェクトだと検索に時間がかかる上に、Unityが強制終了することもあります。

そういった場合にオススメしたいのがguidを使った検索です。

guidはアセットのmetaファイルに書かれている固有のIDで、アセットの参照はこのguidで設定されています。

事前準備

guidで検索を行うには、プレハブやシーンをバイナリではなくテキストで保存するように設定されている必要があります。

メニューからEdit > Project Settings > Editor > を開き、Asset Serializationが「Force Text」になっていることを確認

Force Text

アセットの参照を調べるツール

これから説明する方法で毎回調べるのは大変なので、ツールを作りました。

Unityでアセットの参照を高速に調べるツール【ReferenceViewer】
Unityでアセットの参照を高速に調べるツール【ReferenceViewer】Unity上ではなくOS側で検索対象のアセットに指定アセットのguidが含まれているか調べることで、アセットの参照を高速に検索できるツールです。...

参照の調べ方

試しに「SEButton」プレハブの参照を調べてみます。

guidを確認する

metaファイルを適当なテキストエディタで開きます。

metaファイルをテキストエディタで開く

「guid:」の後ろに書かれている16進数の文字列がguidです。こちらをコピーしておきます。

Finderで調べる(Mac専用)

Mac専用の方法にはなってしまいますが、Finderの検索機能(Spotlight)を使用すればファイルの中身に特定の文字列が含まれているかどうか高速に検索できます。

「Assets」フォルダを対象にして、guidを検索窓に入れて検索します。

Finderで検索

アセット本体のmetaファイルの他に、「ToolMain.unity」が出てきました。

これでToolMainシーンで使用されていることを確認できました。

何箇所で参照されているか確認する

こちらもファイルをテキストエディタで開いて、guidで検索します。

シーンファイルの中身を検索

今回は1箇所で使われていました。

Unity上で確認する

実際にシーンファイルを開いて確認してみます。

シーンを開いて確認

コンポーネント上で参照が紐付けられていることを確認できました!

Resources内のアセットについて

Resources内はResources.Load()を使ってスクリプトからロードすることもできるので、スクリプト側でもファイルパスなどで検索しておくと安全です。