/// <summary> /// 从文件中上传 /// </summary> /// <param name="filePath"></param> /// <param name="fileName"></param> private void ToUploadAnchorFile(string filePath, string fileName) { try { uploadApi = new UploadProgressAnchorApi( "http://" + serverHost, appId, roomId, anchorFilePath, anchorFileName ); worker.SubmitWork(uploadApi); } catch (Exception e) { uploadApi = null; uploadFinish = true; uploadErrorString = e.ToString(); } }
/// <summary> /// 导出anchor资料并上传 /// 注意,上传期间应当阻止应用活动,以避免上传完成之前再次调用 /// </summary> /// <param name="anchors"></param> /// <param name="cbFinish"></param> public void ExportGameRootAnchor(List <AnchorObjectInfo> anchors, System.Action <bool, string> cbFinish) { cbExportFinish = cbFinish; uploadFinish = false; uploadErrorString = null; uploadApi = null; WorldAnchorTransferBatch transferBatch = new WorldAnchorTransferBatch(); for (int i = 0; i < anchors.Count; i++) { AnchorObjectInfo info = anchors[i]; if (info.anchor != null) { bool flag = transferBatch.AddWorldAnchor(info.anchorName, info.anchor); Debug.Log(flag); } } Buffer = new byte[0]; WorldAnchorTransferBatch.ExportAsync(transferBatch, OnExportDataAvailable, OnExportComplete); }
void Update() { if (cbExportFinish != null) { if (uploadApi != null) { try { double progress = worker.GetProgress(uploadApi); if (progress >= 1) { uploadFinish = true; uploadApi = null; } } catch (Exception e) { Debug.Log(e); } } if (uploadFinish) { cbExportFinish(uploadErrorString == null ? true : false, uploadErrorString); uploadFinish = false; cbExportFinish = null; if (File.Exists(anchorFilePath + "/" + anchorFileName)) { File.Delete(anchorFilePath + "/" + anchorFileName); } } } if (cbImportFinish != null) { if (downloadApi != null) { try { double progress = worker.GetProgress(downloadApi); if (progress >= 1) { downloadFinish = true; downloadApi = null; } } catch (Exception e) { Debug.Log(e); } } if (downloadFinish) { if (downloadErrorString != null) { cbImportFinish(false, downloadErrorString, null); cbImportFinish = null; } else { ContinueDownload(); } downloadFinish = false; } } }