public override IAssetAsync GetAssetAsync(LoadRequestAsync request, Type type) { Dictionary <Type, IAssetAsync> assetCache; if (!_assetAsyncCache.TryGetValue(request, out assetCache)) { assetCache = _assetAsyncCache[request] = new Dictionary <Type, IAssetAsync>(); } IAssetAsync asset; if (!assetCache.TryGetValue(type, out asset)) { asset = assetCache[type] = new BundleAssetAsync(request.AssetPath, type, request.Loader, _context); } return(asset); }
public override ILoadRequestAsync LoadAsync(string path) { LoadRequestAsync loadRequestAsync; if (_loadRequestAsyncCache.TryGetValue(path, out loadRequestAsync)) { Logger.LogInfo("Get async load request from cache: {0}", path); return(loadRequestAsync); } var loader = CreateLoaderByAssetPath(path, true); loadRequestAsync = _loadRequestAsyncCache[path] = new LoadRequestAsync(this, _context, path, loader); Logger.LogInfo("Add async load request to cache: {0}", path); return(loadRequestAsync); }
public abstract IAssetAsync GetAssetAsync(LoadRequestAsync request, Type type);
public override IAssetAsync GetAssetAsync(LoadRequestAsync request, Type type) { return(new ResourceAssetAsync(request.AssetPath, type, _context)); }