예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
 public abstract IAssetAsync GetAssetAsync(LoadRequestAsync request, Type type);
예제 #4
0
 public override IAssetAsync GetAssetAsync(LoadRequestAsync request, Type type)
 {
     return(new ResourceAssetAsync(request.AssetPath, type, _context));
 }