Unity

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

Unityのguidでアセットの参照を調べる【guidとは?】
記事内に商品プロモーションを含む場合があります

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

プレハブやテクスチャの参照(どこで使われているか)を調べる時は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を確認する

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

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

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

Finderで調べる(Mac専用)

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

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

Finderで検索

プレハブ本体(ここでは「SEButton.prefab」)のmetaファイルの他に「ToolMain.unity」が出てきました。

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

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

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

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

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

Unity上で確認する

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

シーンを開いて確認

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

Resources内のアセットについて

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