private void OnLoadSelfBundleAction(AssetDatabaseLoader adl) { var abname = adl.AssetBundleName; if (AssetDatabaseLoaders.ContainsKey(abname)) { AssetDatabaseLoaders.Remove(abname); AllLoadedResourceInfos[adl.LoadCache].Add(abname, adl.BundleInfo); } }
protected override void RealRequestResource(string name, AssetBundleLoader.OnLoadAllBundle callback, enResourceLoadMode loadMode = enResourceLoadMode.Sync, enResourceLoadCache loadCache = enResourceLoadCache.NormalLoad, enResourceLoadMethod loadMethod = enResourceLoadMethod.LoadFromFile, object userdata = null) { if (AllLoadedResourceInfos[enResourceLoadCache.NormalLoad].ContainsKey(name)) { callback(AllLoadedResourceInfos[enResourceLoadCache.NormalLoad][name], userdata); if (loadCache > enResourceLoadCache.NormalLoad) { ChangeResourceInfoLoadType(name, enResourceLoadCache.NormalLoad, loadCache); } } else if (AllLoadedResourceInfos[enResourceLoadCache.Preload].ContainsKey(name)) { callback(AllLoadedResourceInfos[enResourceLoadCache.Preload][name], userdata); if (loadCache > enResourceLoadCache.Preload) { ChangeResourceInfoLoadType(name, enResourceLoadCache.Preload, loadCache); } } else if (AllLoadedResourceInfos[enResourceLoadCache.PermanentLoad].ContainsKey(name)) { callback(AllLoadedResourceInfos[enResourceLoadCache.PermanentLoad][name], userdata); } else { AssetDatabaseLoader assetDatabaseLoader = CreateAssetDatabaseLoader(name); assetDatabaseLoader.LoadCache = loadCache; assetDatabaseLoader.UserData = userdata; assetDatabaseLoader.LoadMode = loadMode; assetDatabaseLoader.LoadMethod = loadMethod; assetDatabaseLoader.OnLoadAllBundleAction = callback; assetDatabaseLoader.OnLoadSelfBundleAction = OnLoadSelfBundleAction; AssetDatabaseLoaders.Add(name, assetDatabaseLoader); assetDatabaseLoader.StartLoadResource(); } }