/// <summary> /// 下载文件 /// </summary> /// <param name="url"></param> /// <param name="type"></param> /// <param name="callback"></param> /// <param name="cachePath">缓存到本地的相对目录,如果为null则不缓存</param> /// <param name="retry"></param> public static void Download(string url, FileDownloadType type, FileDownloadCallback callback, string cachePath = null, int retry = 0) { if (downloader == null) { downloader = new FileDownloader(); Updater.Instance.OnPreUpdate.Add(downloader.OnUpdate); Updater.Instance.OnPostDestroy.Add(downloader.OnDestroy); } FileDownloadContext ctx = new FileDownloadContext(); ctx.url = url; ctx.type = type; ctx.callback = callback; ctx.retry = retry; ctx.cachePath = cachePath; if (downloader.CheckCache(ctx)) { if (ctx.callback != null) { ctx.callback(ctx); } return; } downloader.sendQueue.Enqueue(ctx); }
private static IEnumerator GetFileInternal(string download, FileDownloadCallback callback) { #if LDMT_TESTING_WITHOUT_OCTOPI var data = Encoding.UTF8.GetBytes(@"solid model facet normal 0.0 0.0 -1.0 outer loop vertex 40.0 0.0 0.0 vertex 0.0 -40.0 0.0 vertex 0.0 0.0 0.0 endloop endfacet facet normal 0.0 0.0 -1.0 outer loop vertex 0.0 -40.0 0.0 vertex 40.0 0.0 0.0 vertex 40.0 -40.0 0.0 endloop endfacet facet normal -0.0 -1.0 -0.0 outer loop vertex 40.0 -40.0 40.0 vertex 0.0 -40.0 0.0 vertex 40.0 -40.0 0.0 endloop endfacet facet normal -0.0 -1.0 -0.0 outer loop vertex 0.0 -40.0 0.0 vertex 40.0 -40.0 40.0 vertex 0.0 -40.0 40.0 endloop endfacet facet normal 1.0 0.0 0.0 outer loop vertex 40.0 0.0 0.0 vertex 40.0 -40.0 40.0 vertex 40.0 -40.0 0.0 endloop endfacet facet normal 1.0 0.0 0.0 outer loop vertex 40.0 -40.0 40.0 vertex 40.0 0.0 0.0 vertex 40.0 0.0 40.0 endloop endfacet facet normal -0.0 -0.0 1.0 outer loop vertex 40.0 -40.0 40.0 vertex 0.0 0.0 40.0 vertex 0.0 -40.0 40.0 endloop endfacet facet normal -0.0 -0.0 1.0 outer loop vertex 0.0 0.0 40.0 vertex 40.0 -40.0 40.0 vertex 40.0 0.0 40.0 endloop endfacet facet normal -1.0 0.0 0.0 outer loop vertex 0.0 0.0 40.0 vertex 0.0 -40.0 0.0 vertex 0.0 -40.0 40.0 endloop endfacet facet normal -1.0 0.0 0.0 outer loop vertex 0.0 -40.0 0.0 vertex 0.0 0.0 40.0 vertex 0.0 0.0 0.0 endloop endfacet facet normal -0.0 1.0 0.0 outer loop vertex 0.0 0.0 40.0 vertex 40.0 0.0 0.0 vertex 0.0 0.0 0.0 endloop endfacet facet normal -0.0 1.0 0.0 outer loop vertex 40.0 0.0 0.0 vertex 0.0 0.0 40.0 vertex 40.0 0.0 40.0 endloop endfacet endsolid model "); yield return(null); #else UnityWebRequest request = UnityWebRequest.Get(download); yield return(request.SendWebRequest()); if (request.isNetworkError || request.isHttpError) { callback.Invoke(false, null); } else { var data = request.downloadHandler.data; #endif callback.Invoke(true, data); #if !LDMT_TESTING_WITHOUT_OCTOPI } #endif }
public static void GetFile(string download, FileDownloadCallback callback) { Instance.StartCoroutine(GetFileInternal(download, callback)); }