测试异步加载
测试卸载音频,包含完全卸载和非完全卸载。
完全卸载包含从编辑器下加载资源的完全卸载和ab 包加载资源的完全卸载。
Resource.unloadunusedresource,用于编辑器下卸载没有引用到的资源。
编辑器下退出游戏时需调用Resource.unloadunusedresource
测试异步加载
测试卸载音频,包含完全卸载和非完全卸载。
完全卸载包含从编辑器下加载资源的完全卸载和ab 包加载资源的完全卸载。
Resource.unloadunusedresource,用于编辑器下卸载没有引用到的资源。
编辑器下退出游戏时需调用Resource.unloadunusedresource
异步循环加载采用高中低轮流加载。
等待一帧是为了防止卡死。
sprite不可以强转为obj.
连续加载时间大于20万微秒后 等待一帧在加载下一个资源并更新开始时间 。
resourcemanager在while中根据优先级加载异步资源。
设计异步加载类和回调类。
普通资源异步加载的对象需要缓存,加载完成需要回调。
异步加载分为3个优先级,用3个列表缓存。
测试资源从编辑器加载和从ab包加载
测试音频资源的卸载,分为回收和不回收两种情况。不回收的情况需要将obj对应的ab卸载,obj 可以不用置空。
ResourceManager释放zi y
ResourceManager从ResourceItem对象加载出资源后,需要重新缓存ResourceItem对象
资源同步加载:1.先从缓存获取;2.没有的话从编辑器或ab获取;3.如果从ab获取或从编辑器获取失败,调用AssetBundleManager.LoadResourceAssetBundle方法以获取ResourceItem。
ResourceItem存储ab包,加载的资源对象,引用计数等。
将ResourceItem存储在双向链表,缓存引用计数为0的资源,由ResourceManager管理。
AssetDic缓存正在使用中的资源字典。
继续完善CMaplist ,提供清空链表,查找元素,刷新元素的方法。
创建CMapList类,管理一个双向链表对象,方便插入,删除,获取某个元素T。
实现删除某个节点的方法
实现移动某个节点到头部的方法
分别实现添加一个节点到头部或尾部的方法
双向链表的数据结构实现
卸载资源先卸载它的依赖包 再卸载自身包
卸载包先减少计数 若计数小于0 则真正卸载包 并从类对象池回收 从字典删除
加载单个ab包并用字典存储起来。加载时先从字典找,没有的话先从类对象池取,再为类对象初始化。
加载单个资源对应的ab包和依赖包
设计数据结构存储ab包 存储于类对象池