双向链表的数据结构实现
双向链表的数据结构实现
卸载资源先卸载它的依赖包 再卸载自身包
卸载包先减少计数 若计数小于0 则真正卸载包 并从类对象池回收 从字典删除
加载单个ab包并用字典存储起来。加载时先从字典找,没有的话先从类对象池取,再为类对象初始化。
加载单个资源对应的ab包和依赖包
设计数据结构存储ab包 存储于类对象池
加载配置表并用字典cun c
设计数据结构resourceitem 用于存储运行时动态生成的单个资源的信息
Objectmanager 用于管理所有的类dui x chi
写classobjectpool
讲解资源加载管理类 d x chi
动态加载某个资源,需要有它的路径,路径可以在配置表xml中找到
然后从二进制配置表获取资源名
加载并生成物体前需要先加载依赖的包
从ab 包加载资源需要资源名
将二进制配置表也打入ab 包,以普通资源文件夹形式,注意提前存一个同名文件方便打标签。读取配置表时从ab 包读取。
将配置表中不需要动态加载的项目过滤掉
配置表包含项:1,普通资源文件夹内的所有文件2,prefabs文件夹内的所有预制体
二进制文件内不必包含文件路径值,以减少包体,路径值在运行时计算de chu
生成xml和二进制,二者数据内容一致,先后顺序没有关联。xml意义在于查看。
获取配置表所需数据
重点是获取单个资源的依赖项列表,依赖项是其他ab 包的bao ming
设计配置表的数据结构
Assetbundleconfig 包含所有的文件的配置信息,对应ab配置表,ab配置表只有yi g
Abbase对应单个文件
生成配置表前先删除没用的ab 包。不全部删除是为了使用unity的增量打包。
收集全路径-包名字典,为打包前生成配置表做准备。
以普通资源文件夹为单位设置包名,包名自定义
为prefab 和它所依赖的且过滤后的资源设置包名,包名为prefab 名
打包过程中资源不可保存或刷新
打包完毕记得清空所有bao ming
优先处理普通zi y文件夹
收集包名-普通资源文件夹路径的字典
过滤是为了
1,检测prefabs文件夹是否位于需要打包的普通资源文件夹中。
2,检测单个prefab的依赖项是否位于需要打包的普通资源文件夹中。
收集prefab名-过滤后的资源路径zi d