前前后后看了一星期,才有了这篇博文,再次感叹,心急吃不了热豆腐。
在看这篇博文之前,建议先去了解一下Assetbundle和StreamingAsset和WWW和WebRequest这几个东西以及他们的用法。这是必须的,不然你会不知道我在说些什么。。。
之前博文已经介绍了一些基本的模块,流程,热更新,AB包,在执行这些功能的时候,总是不可避免的谈到资源的加载,于是我就在这里讲一下
先来到ProcedureSplash流程
然后我们知道ProcedureCheckVersion流程里有资源初始化,初始化好之后再进入ProcedurePreload流程,那就说明如果当前资源模式为编辑器模式,一定是做了特殊处理,不然不可能逃脱资源初始化这一步骤。
我们先不管资源初始化,先全局搜索EditorResourceMode,看它都影响着什么
然后我们就在ResoureComponent里面发现了这句,这句的意思是,如果当前是编辑器模式加载资源,那么加载资源就用EditorResourceHelper这个辅助器,否则就用默认的资源加载辅助器(可更改)
那么EditorResourceHelper是个啥呢
我们看到,注意这个东西很重要,记住,它包含了将要被加载资源所有内容,文件名(完整路径),加载方式,优先级等
他将在Unity的Update生命周期函数被轮询,作用就是将加载好的资源通过LoadAssetSuccessCallback这类回调函数传回(Update函数只截取了部分,请大家自行查找并阅读)
好,我们再回到这里,看看他在非编辑器模式下设置的资源管理者是啥,加一句Debug
这个就是非编辑器模式下的辅助器了
总结一下这篇博客:
在预加载流程,判断是否为编辑器模式,从而使用不同的资源加载器,不同的资源加载器就有自己不同的资源加载方式