/// <summary> /// Creates the loader. /// </summary> /// <returns> /// The loader. /// </returns> /// <param name='path'> /// Path. /// </param> /// <param name='version'> /// Version. /// </param> /// <param name='useCaching'> /// Use caching. /// </param> public static WwwLoader CreateLoader(string path, int version, bool useCaching) { // Unify path. StringBuilder bd = new StringBuilder(); bd.AppendFormat("{0}", PathUtil.CombinePath(BasePath, path)); //bd.AppendFormat("{0}_{2}.{1}", PathUtil.CombinePath(BasePath, path), Defines.ASSET_BUNDLE_EXTENSION,version); path = PathUtil.UnifyPathNoLower(bd.ToString()); // Check if the asset in the loader table if (_loaders.ContainsKey(path)) { WwwLoader existingLoader = _loaders[path].Value; existingLoader.AddRef(); return(existingLoader); } // Check if system caching is enabled if (EnableCache == false || Caching.enabled == false) { useCaching = false; } // Create loader WwwLoader loader = new WwwLoader(path, version, useCaching); loader.AddRef(); // Add to existing loader _loaders.Add(path, _pendingLoaders.AddLast(loader)); return(loader); }
/// <summary> /// Destroies the loader. /// </summary> /// <param name='loader'> /// Loader. /// </param> public static void DestroyLoader(WwwLoader loader) { if (loader == null) { return; } loader.ReleaseRef(); if (loader.RefCount == 0) { Debug.Assert(_loaders.ContainsKey(loader.AssetPath), "Must exist"); LinkedListNode <WwwLoader> loaderNode = _loaders[loader.AssetPath]; _loaders.Remove(loader.AssetPath); loaderNode.List.Remove(loaderNode); loaderNode.Value.Destroy(); } loader = null; }