private static AssetRequest LoadAsset(string path, Type type, bool async) { if (string.IsNullOrEmpty(path)) { Debug.LogError("invalid path"); return(null); } path = GetExistPath(path); //-------已经存在的asset AssetRequest request; if (_assets.TryGetValue(path, out request)) { request.Retain(); _loadingAssets.Add(request); return(request); } //--------新的asset string assetBundleName; if (GetAssetBundleName(path, out assetBundleName)) { request = async ? new BundleAssetRequestAsync(assetBundleName) : new BundleAssetRequest(assetBundleName); } else { if (path.StartsWith("http://", StringComparison.Ordinal) || path.StartsWith("https://", StringComparison.Ordinal) || path.StartsWith("file://", StringComparison.Ordinal) || path.StartsWith("ftp://", StringComparison.Ordinal) || path.StartsWith("jar:file://", StringComparison.Ordinal)) { request = new WebAssetRequest(); } else { request = new AssetRequest(); } } request.name = path; request.assetType = type; AddAssetRequest(request); request.Retain(); Log(string.Format("LoadAsset:{0}", path)); return(request); }
internal static AssetRequest LoadAsset(string path, Type type, bool async) { if (string.IsNullOrEmpty(path)) { Debug.LogError("invalid path"); return(null); } AssetRequest request; if (_assets.TryGetValue(path, out request)) { request.Retain(); return(request); } string assetBundleName; if (GetAssetBundleName(path, out assetBundleName)) { request = async ? new BundleAssetAsyncRequest(assetBundleName) : new BundleAssetRequest(assetBundleName); } else { if (path.StartsWith("http://", StringComparison.Ordinal) || path.StartsWith("https://", StringComparison.Ordinal) || path.StartsWith("file://", StringComparison.Ordinal) || path.StartsWith("ftp://", StringComparison.Ordinal) || path.StartsWith("jar:file://", StringComparison.Ordinal)) { request = new WebAssetRequest(); } else { request = new AssetRequest(); } } request.url = path; request.assetType = type; AddAssetRequest(request); request.Retain(); Log(string.Format("Load->{0}|{1}", path, assetBundleName)); return(request); }