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

目次

  1. 概要
  2. 準備(メタファイルの表示設定)
  3. プロジェクトの状態
  4. UseTest.csがどこで利用されているか知りたい場合
  5. 補足
  6. 参考

概要

プロダクトで作業していると、利用しなくなったスクリプトやプレハブなどを削除するときがある。しかし、シーン上やプレハブ内で参照されていることを忘れていた場合、思わぬエラーをおこしてしまう。そのため、削除する前にどこで利用されているか検索する方法を記載する。

準備(メタファイルの表示設定)

f:id:yasuaki-ohama:20151029120614p:plain:w300f:id:yasuaki-ohama:20151029120540p:plain:w300
visible meta filesと force textを選択する。

プロジェクトの状態

➜  Assets  tree
.
├── Prefabs
│   ├── GameObject1.prefab
│   ├── GameObject1.prefab.meta
│   ├── GameObject2.prefab
│   ├── GameObject2.prefab.meta
│   ├── GameObject3.prefab
│   └── GameObject3.prefab.meta
├── Prefabs.meta
├── Scene1.unity
├── Scene1.unity.meta
├── Scene2.unity
├── Scene2.unity.meta
├── Scene3.unity
├── Scene3.unity.meta
├── UseTest.cs
└── UseTest.cs.meta

UseTest.csがどこで利用されているか知りたい場合

メタファイルの中身を見る。

➜  Assets  cat UseTest.cs.meta 
fileFormatVersion: 2
guid: 682cc5d1926804f6cb96d2754d17e4e9
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 

guid: 682cc5d1926804f6cb96d2754d17e4e9をコピー
以下のファイルで使用されている

➜  Assets  grep -l -R "682cc5d1926804f6cb96d2754d17e4e9" .
./Prefabs/GameObject1.prefab
./Prefabs/GameObject3.prefab
./Scene1.unity
./Scene3.unity
./UseTest.cs.meta

補足

git を利用している場合は高速に検索できるgit grep がおすすめ
git grep "682cc5d1926804f6cb96d2754d17e4e9"

次の記事

以下の記事のシェルスクリプトを利用すれば1回のコマンドで表示することができる
注意: git grepを利用しています
yasuaki-ohama.hatenablog.com