Unity中资源依赖关系获取优化

Unity中资源依赖关系获取优化

https://www.jianshu.com/p/a0ae15412a2d

今天和大家分享一个优化经验,主要关于获取一个资源的依赖资源列表即对AssetDatabase.GetDependencies这个接口的调用效率优化。通过一步步优化最后在对工程中所有资源获取依赖资源的执行上提升了近100倍的效率。

Unity中资源依赖关系获取优化_第1张图片

在对AssetBundle进行打包时候,需要获取资源的依赖关系,并生成最后所有资源的BundleName。这里主要的瓶颈就是对资源的依赖关系数据获取上。在工程实践中发现整个构建环节20分钟,16分钟是BuildAssetBundles开销,3分钟是GetDependencies开销。在增量构建中,BuildAssetBundles可降为1-3分钟,而GetDependencies则仍需要3分钟开销。当然对于资源数量较小的工程,这个优化就是一个可有可无的选项对构建速度影响不大。

还有一个常见的应用场景就是快速查找资源资源的依赖数据以及被依赖数据,也可以通过这次的优化带来体验上提升。

首先从分析AssetDatabase.GetDependencies这个接口的行为开始,简单的编写一个测试函数:



作者:carber
链接:https://www.jianshu.com/p/a0ae15412a2d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

 

 

 

 

 

 

你可能感兴趣的:(Unity)