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

本文分享了Unity中资源依赖关系获取的优化经验,针对AssetDatabase.GetDependencies接口调用效率的提升,实现在大型项目中资源依赖数据获取速度提高近100倍,适用于AssetBundle打包及资源依赖数据快速查找。

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

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

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

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

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

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



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

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值