IEnumerator _coroutineExecHandel(string filepath, tabfun.Action_1_param <WWW> wWWCompleteDelegate) { WWW www = new WWW(filepath); yield return(www); wWWCompleteDelegate(www); }
// 截图 public Texture2D SreenShot(tabfun.Action_1_param <Texture2D> ac = null) { Debug.Log("截图!"); if (Application.platform != RuntimePlatform.IPhonePlayer) { var Build = new AndroidJavaClass("android.os.Build"); var brand = Build.GetStatic <string>("BRAND"); // 保存路径 string savepath = "/sdcard/" + Application.productName, savepath1 = "/sdcard/Pictures/Screenshots", savepath2 = "/sdcard/DCIM/Screenshots", savepath_winpc = "C:/Users/王庆东/Desktop/tabfun/应用截图保存/药分子"; bool cansave = false; if (!Directory.Exists(savepath1)) { if (!Directory.Exists(savepath2)) { if (!Directory.Exists(savepath)) { Directory.CreateDirectory(savepath); } } else { if (Application.platform == RuntimePlatform.Android) { cansave = true; savepath = savepath2; } else if (Application.platform == RuntimePlatform.WindowsEditor) { savepath = savepath_winpc; cansave = true; } } } else { if (Application.platform == RuntimePlatform.Android) { savepath = savepath1; cansave = true; } else if (Application.platform == RuntimePlatform.WindowsEditor) { savepath = savepath_winpc; cansave = true; } } if (cansave) { Rect rect = new Rect(0, 0, Display.main.systemWidth, Display.main.systemHeight); // 创建空纹理 Texture2D screenShotTexture2d = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false); // 读取屏幕像素信息并存储为纹理数据 screenShotTexture2d.ReadPixels(rect, 0, 0); screenShotTexture2d.Apply(); System.DateTime now = new System.DateTime(); now = System.DateTime.Now; string filename = string.Empty; filename = string.Format("Screenshot_{0}-{1}-{2}-{3}-{4}-{5}.png", now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); // 转换为png byte[] bytes = screenShotTexture2d.EncodeToPNG(); // 保存 savepath += "/" + filename; File.WriteAllBytes(savepath, bytes); AndroidJavaClass classPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject objActivity = classPlayer.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaClass classMedia = new AndroidJavaClass("android.media.MediaScannerConnection"); classMedia.CallStatic("scanFile", new object[4] { objActivity, new string[] { savepath }, new string[] { "image/png" }, null }); return(screenShotTexture2d); } } else { // savePhotoScreent(); // System.DateTime now = new System.DateTime(); // now = System.DateTime.Now; // string filename = string.Format("Screenshot_{0}-{1}-{2}-{3}-{4}-{5}.png", // now.Year, now.Month, now.Day, // now.Hour, now.Minute, now.Second); // Rect rect = new Rect(0, 0, Display.main.systemWidth, Display.main.systemHeight); // // 创建空纹理 // Texture2D screenShotTexture2d = new Texture2D((int)rect.width, (int)rect.height, // TextureFormat.RGB24, false); // // 读取屏幕像素信息并存储为纹理数据 // screenShotTexture2d.ReadPixels(rect, 0, 0); // screenShotTexture2d.Apply(); // // 转换为png //// byte[] bytes = screenShotTexture2d.EncodeToPNG(); // // 保存 // // savePhotoToLocalPath(filename, System.Convert.ToBase64String(bytes), 1); // return screenShotTexture2d; //action = ac; //grab = true; } return(null); }
public void Query(string _string, tabfun.Action_1_param <Classes> queryResult, bool isSearch = false) { var preticks = System.DateTime.Now.Ticks; Debug.Log(" <<<<<<<<<<<< 开始检查... 参数:" + _string); var rootfiledata = new FileData("tabfun/path.json", FileData.FileType.Rootfile); string path = string.Empty; if (Application.platform == RuntimePlatform.Android) { path = Application.streamingAssetsPath + "/" + rootfiledata.Filepath; } else { path = "file://" + Application.streamingAssetsPath + "/" + rootfiledata.Filepath; } tabfun.helper.Coroutine.Instance.StartWWW(new WWW(path), (www) => { if (www.error == null) { var jsondata = JsonMapper.ToObject(tabfun.helper.Coroutine.Instance.GetJsonString(www)); if (jsondata == null) { return; } tabfun.helper.LitJson.FindKey(jsondata, "query_drugs", (data) => { if (data == null) { return; } tabfun.helper.LitJson.Each(data, (key, value) => { if (value == null) { return; } tabfun.helper.LitJson.FindKey(value as JsonData, "contain", (containJsonData) => { if (containJsonData == null) { return; } tabfun.helper.LitJson.Each(containJsonData, (k, v) => { var names = v.ToString().Split('_'); bool isFound = false; foreach (var name in names) { if (name == _string) { isFound = true; break; } } if (isFound) { var query_drug_root = (value as JsonData); var drugspath = query_drug_root["path"]["drugs"].ToString(); Debug.Log(" >>>>>>>>>>>> " + _string + " 所在key:" + key + " 所在的drugs路径:" + drugspath); string p = string.Empty; if (Application.platform == RuntimePlatform.Android) { p = Application.streamingAssetsPath + "/" + drugspath; } else { p = "file://" + Application.streamingAssetsPath + "/" + drugspath; } tabfun.helper.Coroutine.Instance.StartWWW(new WWW(p), (drugswww) => { if (drugswww.error == null) { Debug.Log(" 加载完成! 药品json文件: " + p); var drugsjsondata = JsonMapper.ToObject(tabfun.helper.Coroutine.Instance.GetJsonString(drugswww)); if (drugsjsondata == null) { return; } var returnClasses = new Classes(); var drugname = drugsjsondata["name"].ToString(); var drugs = drugsjsondata["drugs"]; var classes = drugsjsondata["classes"]; var drug = drugs[names[0]]; var drugclass = drug["所属类药"] == null ? "" : drug["所属类药"].ToString(); var drugparentclass = drug["所属父类药"] == null ? "" : drug["所属父类药"].ToString(); tabfun.Action_1_param <JsonData> findresult = (jd) => { returnClasses.Name = jd["名称"] == null ? string.Empty : jd["名称"].ToString(); returnClasses.TheSystemOfDrug = jd["所属系统药"] == null ? string.Empty : jd["所属系统药"].ToString(); returnClasses.TheFunctionalMedicine = jd["所属功能药"] == null ? string.Empty : jd["所属功能药"].ToString(); returnClasses.OnBehalfOfTheDrugName = jd["代表药物"] == null ? string.Empty : jd["代表药物"].ToString(); switch (jd["showType"].ToString()) { case "0": returnClasses.Mtype = Classes.ModelType.UnknownType; break; case "1": { returnClasses.Mtype = Classes.ModelType.BaseStructrueModelType; var infff = jd["信息详情"]; if (infff != null) { returnClasses.Info = new Information(); var infosturcture = infff["自身结构"]; var shiyingzheng = infff["适应症"]; var zhuyishixiang = infff["注意事项"]; var other1 = infff["其他1"]; var other2 = infff["其他2"]; if (infosturcture != null) { foreach (var i in infosturcture) { returnClasses.Info.StructureList.Add(i.ToString()); } } if (shiyingzheng != null) { foreach (var i in shiyingzheng) { returnClasses.Info.IndicationsList.Add(i.ToString()); } } if (zhuyishixiang != null) { foreach (var i in zhuyishixiang) { returnClasses.Info.PrecautionsList.Add(i.ToString()); } } if (other1 != null) { returnClasses.Info.Other1 = other1.ToString(); } if (other2 != null) { returnClasses.Info.Other2 = other2.ToString(); } } } break; case "2": returnClasses.Mtype = Classes.ModelType.OnBehalfOfDrugModelType; break; } var subclasses = jd["包含子类"]; if (subclasses != null) { foreach (var name in subclasses) { returnClasses.SubClassesName.Add(name.ToString()); } } var includedrugs = jd["包含药物"]; if (includedrugs != null) { tabfun.helper.LitJson.Each(includedrugs, (includedrugsKey, includedrugsValue) => { Debug.Log("该类包含的所有药品:" + includedrugsValue.ToString()); var drugjsondata = drugs[includedrugsValue.ToString()]; var n = drugjsondata["药品名称"] == null ? string.Empty : drugjsondata["药品名称"].ToString(); if (!isSearch || (isSearch && names[0] == n) || (isSearch && returnClasses.Mtype == Classes.ModelType.OnBehalfOfDrugModelType && returnClasses.OnBehalfOfTheDrugName == n)) { var durg = new Drug(); durg.Name = n; durg.TheSystemOfDrug = drugjsondata["所属系统药"] == null ? string.Empty : drugjsondata["所属系统药"].ToString(); durg.TheFunctionalMedicine = drugjsondata["所属功能药"] == null ? string.Empty : drugjsondata["所属功能药"].ToString(); durg.TheNameOfTheClass = drugjsondata["所属类药"] == null ? string.Empty : drugjsondata["所属类药"].ToString(); durg.TheNameOfTheParentClass = drugjsondata["所属父类药"] == null ? string.Empty : drugjsondata["所属父类药"].ToString(); var info = drugjsondata["知识点"]; if (info != null) { durg.Info = new Information(); var infosturcture = info["自身结构"]; var shiyingzheng = info["适应症"]; var zhuyishixiang = info["注意事项"]; var other1 = info["其他1"]; var other2 = info["其他2"]; if (infosturcture != null) { foreach (var i in infosturcture) { durg.Info.StructureList.Add(i.ToString()); } } if (shiyingzheng != null) { foreach (var i in shiyingzheng) { durg.Info.IndicationsList.Add(i.ToString()); } } if (zhuyishixiang != null) { foreach (var i in zhuyishixiang) { durg.Info.PrecautionsList.Add(i.ToString()); } } if (other1 != null) { durg.Info.Other1 = other1.ToString(); } if (other2 != null) { durg.Info.Other2 = other2.ToString(); } } var fujiainfo = drugjsondata["附加信息"]; if (fujiainfo != null) { foreach (var i in fujiainfo) { var item = i as JsonData; var attachedinfo = new AttachedInfo(); attachedinfo.TrackableName = item["识别图"] == null ? string.Empty : item["识别图"].ToString(); attachedinfo.ModelName = item["模型名称"] == null ? string.Empty : item["模型名称"].ToString(); attachedinfo.PngName = item["png"] == null ? string.Empty : item["png"].ToString(); durg.AttachedInfoList.Add(attachedinfo); } } returnClasses.Drugs.Add(durg); } }); List <Drug> l = new List <Drug>(); foreach (var d in returnClasses.Drugs) { l.Add(d); } returnClasses.Drugs.Clear(); returnClasses.Drugs.Add(l.Find((d) => { return(d.Name == names[0]); })); foreach (var d in l) { if (d.Name != names[0]) { returnClasses.Drugs.Add(d); } } l.Clear(); } var attached = jd["附加信息"]; if (attached != null) { foreach (var i in attached) { var item = i as JsonData; var attachedinfo = new AttachedInfo(); attachedinfo.TrackableName = item["识别图"] == null ? string.Empty : item["识别图"].ToString(); attachedinfo.ModelName = item["模型名称"] == null ? string.Empty : item["模型名称"].ToString(); attachedinfo.PngName = item["png"] == null ? string.Empty : item["png"].ToString(); returnClasses.AttachedInfoList.Add(attachedinfo); } } Debug.Log(" >>>>>>>>>> 查询 " + _string + " 所消耗时间 " + (System.DateTime.Now.Ticks - preticks) / 10000.0f + "微妙"); queryResult(returnClasses); }; tabfun.helper.LitJson.FindKey(classes, drugclass, (jd) => { if (jd == null) { tabfun.helper.LitJson.FindKey(classes, drugparentclass, (findvalue) => { if (findvalue != null) { findresult(findvalue); } }); } else { findresult(jd); } }); } else { Debug.Log(" 加载失败! 药品json文件路径:" + p); } }); } }); }); }); }); } else { Debug.Log(" <<<<<<<<<<<< 加载失败:" + rootfiledata.Filepath); } }); }