/// <summary> /// 创建AssetDatabaseInfo对象信息 /// </summary> /// <param name="respath">资源路径</param> /// <returns></returns> private AssetDatabaseInfo createAssetDatabaseInfo(string respath) { var adi = AssetDatabaseInfoFactory.create(); adi.AssetBundlePath = respath; adi.onResourceUnloadedCallback = onResourceUnloaded; return(adi); }
/// <summary> /// 对应资源卸载回调 /// </summary> /// <param name="ari"></param> private static void onResourceUnloaded(AbstractResourceInfo ari) { var adi = ari as AssetDatabaseInfo; //资源卸载数据统计 if (ResourceLoadAnalyse.Singleton.ResourceLoadAnalyseSwitch) { ResourceLoadAnalyse.Singleton.addResourceUnloadedTime(adi.AssetBundleName); } // 资源卸载时资源AssetDatabaseInfo回收时回收重用 AssetDatabaseInfoFactory.recycle(adi); }
/// <summary> /// 资源加载模块初始化 /// </summary> public override void init() { base.init(); ResLoadMode = ResourceLoadMode.AssetDatabase; mResourceRequestTaskMap = new Dictionary <string, AssetDatabaseLoader>(); mUnsedResourceInfoList = new List <AbstractResourceInfo>(); mCheckUnsedResourceTimeInterval = 5.0f; mWaitForCheckUnsedResourceInterval = new WaitForSeconds(mCheckUnsedResourceTimeInterval); mMaxUnloadResourceNumberPerFrame = 10; mResourceMinimumLifeTime = 20.0f; mResourceRecycleFPSThreshold = 20; AssetDatabaseLoaderFactory.initialize(20); // 考虑到大部分都是采用同步加载,所以AssetDatabaseLoader并不需要初始化太多 AssetDatabaseInfoFactory.initialize(200); }