介绍

在项目开发中经常需要知道两个资源之间是如何产生依赖关系的,而且资源之间的依赖较为复杂,需要将依赖的所有路径都显示出来。

原理

Unity 提供了 AssetDatabase.GetDependencies API 用于获得资源的依赖。在 Unity 旧版本中,此 API 只能获得全部依赖,而不是直接依赖。而新版本中增加了 recursive 参数用于获取直接依赖。

通过获得直接依赖的 API 接口,获取资源的直接依赖,然后与目标比较是否相同,不同则递归进行查找,相同则返回递归过程的路径。

最终需要将所有依赖全部遍历完成,将所有符合条件的路径保存并显示出来。

项目

编写了一个简单的 Unity 编辑器插件来实现此功能:

Show Asset Relationship

networm/ShowAssetRelationship: Show relationship between two assets in Unity