cocoscreator2.4资源加载流程
creator2.4.x 使⽤cc.AssetsManager管理资源,使⽤Asset Bundle 作为资源模块化⼯具。
默认bundle有internal、main,分别是引擎内置bundle,以及⽤户默认bundle;
如果主动创建了assets/resources⽂件夹,还会多⼀个resources bundle。
资源加载分为静态加载和动态加载
直接被编辑器节点树引⽤的资源,实例化时,引擎会⾃动静态加载;
需要动态加载的资源,⼀般放在resources⽬录下,使⽤cc.resources.loadAny加载;
但是家在资源本质上都是通过cc.AssetsManager的pipeline加载管线进⾏加载的
error parse new以下是⼀个已经配置为bundle的⽂件夹,以及其构建⽬录
test_bundle
构建⽬录结构
import⽂件夹⾥都是json⽂件,存放cc.Asset资源的序列化信息,bundle所有的资源如cc.SceneAsset、cc.SpriteFrame、cc.Texture2D、cc.TextAsset等都会存在这⾥。Text或Json这类⽂本资源直接就内容填在这⾥了,⾮⽂本资源存则会声明依赖的是的哪些⽂件。
native⽂件夹是真正的资源⽂件⽬录,存放所有⾮⽂本资源,如图⽚、字体等⽂件。
config.json⽂件是上⾯所有这些资源的关联配置描述,存放资源路径和uuid的对应关系。
以下是uuid解码后的config.json:
3. downloader下载该json配置⽂件,parse解析、反序列化该⽂件,⽣成⼀个cc.SpriteFrame对象,但是该对象暂⽆texture资源。此时本次加载管线执⾏完毕。
4. 再看看有没有要加载的依赖,有的话开启新的加载管线进⾏加载。此次依赖⼀个texture资源,uuid="fd96705f-ace9-45ca-8f15-
58f0cf33f12b"
image.png
也是先加载import下的json配置,然后创建cc.Texture2D对象,它依赖的就是native下的同名⽂件:
"assets/test_bundle/native/fd/fd96705f-ace9-45ca-8f15-58f0cf33f12b.png"
5. texture资源也加载完成以后,通过setProperties设置关联,将该texture赋值给第三步⽣成的cc.SpriteFrame
6. 加载完成,回调
画了个加载管线的简易流程图:
cocoscreator资源加载流程.jpg
下⾯,我们跟着代码⼀步步⾛
bundle.load调⽤cc.AssetManager.loadAny,传⼊初始化的options参数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论