zoukankan      html  css  js  c++  java
  • LuaFramework内存资源管理器ResourceManger详解及切换场景资源清理

    1.成员变量
    m_BaseDownloadingURL : 获取资源的地方,加载AssetBundle包的时候会用到
    m_AssetBundleManifest : 包间依赖关系文件,从这个类中的信息中可以知道某个包依赖的包有哪些,如果依赖的包还没加载进去则先加载依赖包
    m_Dependencies : 如上,一个包名对应多个依赖包名
    m_LoadedAssetBundles :已经加载入内存的AssetBundle包,一个包名对应一个AssetBundle(AssetBundleInfo包了一层)
    m_LoadRequests : 当前正在处理的“从AssetBundle包中解压Asset资源(纹理,材质,预设等)”的请求,一个包名对应多个Asset资源名
     
    2.重要调用堆栈
    ResourceManager初始化
    GameManager.Init->CheckExtractResource->OnUpdateResource->OnResourceInited->ResourceManager.Initiallize
    加载AssetBundle包并把指定的Asset资源从包中解压出来,一般都是通过LoadPrefb调用,把预设从包中解压出来,则会同时把预设引用的资源(例如mesh,材质,纹理等)解压出来。一般情况下,在使用某个预设去Initialize出一个克隆体之前,会加载这个预设资源。加载预设资源需要一定时间,所以对于一些较大的资源,也可以在loading的时候全部加载出来,不过这样内存占用就比较大了,即所谓用空间换时间。
    ResourceManager.LoadPrefb-》LoadAsset
     
    3.主要函数
    LoadAsset
    OnLoadAssetBundle
    OnLoadAsset
     
    4.加载资源过程中内存占用
     
    5.切换场景资源清理
    由于LoadLevel调用的时候仅把“1.实例化的gameobject 2.prefabs 3.通过AssestBundle.LoadAsset(prefabs)自动加载进来的asset”删除了,而ab包没管,所以需要清理一下ab包以减少内存的占用
     
  • 相关阅读:
    模块:标准库Shelve
    模块:标准库shutil
    模块:标准库sys
    关于html中的文本节点问题
    MVVM
    iOS 检测有没有安装其它应用 和ios9下要注意的地方
    iOS9对SDK的影响(iOS9适配必看)
    CircleLayout
    MapSearch 阅读随笔
    苹果官网 demo The Elements 阅读随笔
  • 原文地址:https://www.cnblogs.com/VariousCloudShadow/p/7201059.html
Copyright © 2011-2022 走看看