更新

  • 2020/06/13 推荐基于缓存的查找工具
  • 2017/01/29 初次发布

推荐

使用文本查找引用会无法找到 FBX 这种根据材质名称自动生成材质的引用,但其实所有这些引用 Unity 都记录在案。因此最好的方式就是通过 Unity API 获取依赖关系,记录整个项目的依赖关系为缓存后查找。

这里推荐另一个插件:Unity 查找资源引用工具 - 狂飙,这个插件正确实现了缓存,并且会更新变化文件的缓存,极大提升查找效率。另外插件也兼容 Unity 5.6 2017 2018。

定义

Unity 资源引用是什么?

Unity 官网教程对此进行了详细的讲解 Unity - Assets, Objects and serialization

资源引用查找

Unity 默认提供了 Find References in Scene,但我们经常需要查找某个资源被哪些其他资源引用了,也就是 Find References in Project

使用 Unity 自带 API

使用 Unity 的 API 编写了一个简单的脚本实现此功能:networm/FindReferencesInProject: Find asset references in Unity project.

FindReferencesInProject

这种方法的优点是没有任何限制,完全依赖于 Unity 内部接口。

使用 Mac OS X 的 Spotlight

Unity editor extension that uses spotlight on OSX for lightning fast project reference searches. Asset serialization mode should be set to “Force Text” in the editor settings.

这种方法由于使用了系统的索引,速度非常快。6G 大小的 Unity 项目中可以在 2000 毫秒内找到结果。 缺点是必须将项目序列化方式设置为 Force Text

Unity 插件

有很多插件作者编写了类似功能的插件放在了 Asset Store 中,请自行使用 find reference 关键词在 Asset Store 中搜索:find,reference - Asset Store

使用插件的优点是有缓存,速度会很快;同时插件与 Unity 结合紧密,可以实现很多其他功能。