上篇博客已经将编辑器和非编辑器资源加载区分开了,那我们这篇就来具体看看非编辑器模式下资源加载
进入InitResources函数,此时的ResourceManager已经是我们非编辑器模式下的资源器了,所以这篇博客中的m_ResourceManager不再过多赘述
这 里的m_ReadOnlyPath就是也就是我们AB包所在位置,他读取的是StreamAssets文件夹下的version.dat
至于这里面到底加载的啥,我也弄不清楚,应该是资源映射表吧,我们先跟进去看看,我们发现他考虑很多种状况,并加载到了数据流,并通过回调函数,将加载的数据传递出来了
我们再看看这个回调函数,可以看到他做了非常多非常多事情
为加载到的资源打好标签
处理依赖关系
把资源全部加入资源组中
处理各个资源组
此时,已经将所有资源信息都加载到资源组里了, 需要使用的时候直接加载即可。
总结一下过程:
从version.dat读取二进制文件流,利用回调函数解析资源信息并添加到资源组,供项目使用,建议大家多看看这部分代码,稳赚不亏!
这时候已经把资源映射路径做好了,也就是说某种意义上完成了加载路径从Assets/StreamingAssets/到Assets/GameMain/的转变