//-------------------------------------Tracker call back------------------------------------------ public void Ontrackerfoundevent(Imagetargettracker _imagetargettracker, GameObject _imagetarget) { //TODO:版本蓝图 //1.识别图识别到后操作分为三大类型:A.基础类型操作(base),B.基于基础类型之上添加自定义操作(base+Custom),C.完全自定义操作(freedom) //2.识别到识别图后读取设置进行对识别图识别后进行区分操作 //3.识别到识别图后进行的操作写入内容资源内部 //4.调用资源内部方法进行执行 if (!Browser.Getinstance().GetNetreachable(false)) { return; } if (imagetracker != null) { if (!imagetracker.Equals(_imagetargettracker)) { imagetracker = _imagetargettracker; } } else { imagetracker = _imagetargettracker; } curtrackerstatus = Trackerstatus.FOUND; Scanview scanview = (Scanview)Uimanager.Getinstance().Getviewfromviewid(typeof(Scanview).Name); scanview.Updateviewstatus(Viewstatus.SHOW); if (_imagetargettracker.targetdata.Instantiatedobject != null) { _imagetargettracker.targetdata.Brokenlink(); } }
/// <summary> /// 绑定按钮事件 /// </summary> private void Btneventbind() { Scannermanager.Getinstance().onparsingitemend = Viewop; //获取识别图缩略图 markless.onClick.AddListener(() => { markerlessview.SetActive(true); Browser.Getinstance() .GetMarkless(item.thumbnails, Uimanager.Getinstance().Setmarkerless, null, markerlessimage); }); //关闭识别图浮窗 markerlessclosebtn.onClick.AddListener(() => { markerlessimage.sprite = null; Resources.UnloadUnusedAssets(); }); //下载识别图 markerlesscdownloadbtn.onClick.AddListener(() => { DownloadMarkless(); }); //下载资源 download.onClick.AddListener(() => { Downloadasset(); }); //播放视频 videoplayerbtn.onClick.AddListener(() => { videopayer.GetComponent <Button>().interactable = true; videoplayerbtn.gameObject.SetActive(false); if (tmpthumbnails != null) { DestroyImmediate(tmpthumbnails); videopayer.texture = null; } mediaplayer.Play(); }); //暂停视频 videopayer.GetComponent <Button>().onClick.AddListener(() => { videopayer.GetComponent <Button>().interactable = false; videoplayerbtn.gameObject.SetActive(true); mediaplayer.Pause(); }); favorite.onClick.AddListener(() => { //TODO:write data to dbs. Adddatatofavoritedb(); }); }
public override void Bindingeventstobtn() { back.onClick.AddListener(() => { Uistack.Getinstance().Return(2); }); cleancach.onClick.AddListener(() => { Caching.CleanCache(); Calculaterspaceoccupied(); }); aboutbtn.onClick.AddListener(() => { Baseview show = Uimanager.Getinstance().Getviewfromviewid(typeof(Aboutview).Name); Uistack.Getinstance().Openview(show, Viewstatus.SHOW); }); histroy.onClick.AddListener(() => { Baseview show = Uimanager.Getinstance().Getviewfromviewid(typeof(Histroyview).Name); Uistack.Getinstance().Openview(show, Viewstatus.SHOW); }); favorite.onClick.AddListener(() => { Baseview show = Uimanager.Getinstance().Getviewfromviewid(typeof(Favoriteview).Name); Uistack.Getinstance().Openview(show, Viewstatus.SHOW); }); }
private void Adddatatofavoritedb() { Sqlitehelper helper = new Sqlitehelper("data source=skbrowser.db"); SqliteDataReader sdr = helper.Readfromid("favorite_test", "id", item.id.ToString()); if (sdr.HasRows) { Uimanager.Getinstance().Showtips("已取消收藏"); helper.Delete("favorite_test", "id", item.id.ToString()); helper.CloseSqlConnection(); favorite.GetComponent <Image>().sprite = Resources.Load <Sprite>("Ui/btn_like_nor"); Favoriteview favoriteview = FindObjectOfType <Favoriteview>(); if (!favoriteview.favoritegameobjects.ContainsKey(item.id)) { return; } Destroy(favoriteview.favoritegameobjects[item.id]); favoriteview.favoritegameobjects.Remove(item.id); if (!favoriteview.favoriteoperation.favorite.ContainsKey(item.id)) { return; } favoriteview.favoriteoperation.favorite.Remove(item.id); return; } string itemjson = JsonUtility.ToJson(item); helper.InsertInto("favorite_test", new string[] { item.id.ToString(), item.itemname, itemjson }); Uimanager.Getinstance().Showtips("已添加至收藏"); favorite.GetComponent <Image>().sprite = Resources.Load <Sprite>("Ui/btn_like_sel"); }
/// <summary> /// 下载模型资源 /// </summary> private void Downloadasset() { if (isdownloading) { Uimanager.Getinstance().Showtips("资源正在下载中"); return; } //检查资源是否有缓存 if (!SKassetbundlehelper.instance.Checkcache(item.Getitemurl(), item.version)) { isdownloading = true; //检查网络是否可用 if (!Browser.Getinstance().GetNetreachable(false)) { return; } //载入资源 StartCoroutine(SKassetbundlehelper.instance.Paringbundle(item.Getitemurl(), item.version, Ondownloaded)); } else { //由showcase界面下载进入到scan view 解析模型资源 StartCoroutine(SKassetbundlehelper.instance.Paringbundle(item.Getitemurl(), item.version, Scannermanager.Getinstance().Parsingbundlecallback)); //黑色浸入 //Uimanager.Getinstance().Addblackfade(true,null); //Viewop(); // Viewop(); } }
/// <summary> /// 用于录屏操作开始的触发器 /// </summary> /// <param name="isrecording"></param> public void Dooperation(bool isrecording) { if (!isinited) { return; } if (!issupported && !isrecording) { Uimanager.Getinstance().Showtips("当前硬件设备不支持该功能"); return; } if (isrecording) { Debug.Log("停止录制" + isstarted); Everyplay.StopRecording(); } else { Debug.Log("开始录制" + isstarted); if (isrecording) { return; } Everyplay.StartRecording(); } }
public bool GetNetreachable(bool _showtip) { if (!netreachable && _showtip) { Uimanager.Getinstance().Showtips("网络不可用"); } return(netreachable); }
public virtual void Initview() { self = GetComponent <RectTransform>(); originaloffset = self.anchoredPosition3D; viewid = GetType().Name; Uimanager.Getinstance().Addviewtodictioary(viewid, this); Bindingeventstobtn(); }
private IEnumerator Waittingtohide() { yield return(new WaitForSeconds(waitseconds)); Updateviewstatus(Viewstatus.HIDE); callback = null; Uimanager.Getinstance().tips.Remove(this.gameObject); Destroy(this.gameObject, 1f); }
/// <summary> /// 获取识别图图片回调 /// </summary> /// <param name="_bytes"></param> /// <param name="_image"></param> private void GetMarkerless(byte[] _bytes, object _image) { //生成照片名称 string filename = Fileoperation.Generatefilename(".jpg"); string path = Scannermanager.Getinstance().projectconfig.photopath + "/" + filename; //存入本地相册 File.WriteAllBytes(path, _bytes); Crossplatformbridge.Getinstance().Savephoto("/SKbrowser/" + filename); StartCoroutine(Uimanager.Getinstance().Waittoshowtips("识别图已存储到相册")); }
private void Viewop() { //界面之间的逻辑切换 Baseview scanview = Uimanager.Getinstance().Getviewfromviewid(typeof(Scanview).Name); Baseview caseview = Uimanager.Getinstance().Getviewfromviewid(typeof(Showcaseview).Name); Baseview detailview = Uimanager.Getinstance().Getviewfromviewid(typeof(Detaildescriptionview).Name); Uistack.Getinstance().Openview(caseview, Viewstatus.HIDE); Uistack.Getinstance().Openview(detailview, Viewstatus.HIDE); Uistack.Getinstance().Openview(scanview, Viewstatus.HIDE); }
public void Parsingitemjson(string _msg) { //--------------------------反序列化至items类型-------------------- Item item = Browser.Getinstance().Getdatafromjson <Item>(_msg); //--------------------------资源加载------------------------------- StartCoroutine(SKassetbundlehelper.instance.Paringbundle(item.Getitemurl(), item.version, Parsingbundlecallback)); Getcurrecostatus = Scanstatus.SCANTHERESULTS; //TODO:显示下载UI进度条 Uimanager.Getinstance().Showprogress(); }
private void Start() { detaildescriptionview = Uimanager.Getinstance().Getviewfromviewid(typeof(Detaildescriptionview).Name); clickarea.onClick.AddListener(Addfuntobtn); #if VERSION2_0 Debug.Log(item.thumbnails); Browser.Getinstance().GetMarkless(item.thumbnails, Uimanager.Getinstance().Setmarkerless, null, background); #endif }
public override void Updateviewstatus(Viewstatus _viewstatus) { if (Uimanager.Getinstance().tips.Count >= 2) { for (int i = 0; i < Uimanager.Getinstance().tips.Count - 1; i++) { GameObject tmp = Uimanager.Getinstance().tips[i]; Uimanager.Getinstance().tips.RemoveAt(i); Destroy(tmp); } } base.Updateviewstatus(_viewstatus); }
private void Getdata() { if (getdatas != Getdatas.GETTING) { return; } if (Browser.Getinstance().GetNetreachable(false)) { Uimanager.Getinstance().Showtips("数据加载中..."); } //TODO:1.显示提示 Browser.Getinstance().Getcatergory(Uimanager.Getinstance().Getcategory, Uimanager.Getinstance().Showtips); getdatas = Getdatas.GETED; }
/// <summary> /// 录屏结束后回调 /// </summary> private void Onstoprecording() { isstarted = false; //视屏录制完毕后回调,一般用于隐藏恢复用户提示界面(UI) if (onrecorded != null) { onrecorded(); } curtime = 0; //由于everplayer录屏插件录制的视频将存储到temporarycachpath中 //故我们使用这个路径用C#代码来查找 string tmpfilepath = Application.temporaryCachePath; #if UNITY_IPHONE tmpfilepath = tmpfilepath.Replace("Library/Caches", "tmp"); #endif //使用Directoryinfo 来搜索查询录制下来的视频 DirectoryInfo dir = new DirectoryInfo(tmpfilepath); var files = dir.GetFiles("*.mp4", SearchOption.AllDirectories); var file = files.OrderByDescending(f => f.CreationTime).FirstOrDefault(); if (file != null && string.IsNullOrEmpty(file.FullName)) { return; } string tmpfullname = file.FullName; #if UNITY_ANDROID //搜索到视频后将其另存到我们指定的目录下 Fileoperation.Writefiletodisk(file.FullName, Scannermanager.Getinstance().projectconfig.recordingpath, Fileoperation.Generatefilename(".mp4")); #endif #if UNITY_IPHONE || UNITY_IOS //IOS中存储路径与安卓有差异 string originpath = file.FullName; string temp = originpath.Replace(file.Name, file.Name + "_reencode.mp4"); if (Fileoperation.Fileexist(originpath)) { Crossplatformbridge.Getinstance().Savevideo(originpath, temp); } #endif Uimanager.Getinstance().Showtips("录像已存到本地"); }
internal void Parsingbundlecallback(Object obj) { if (this.imagetracker == null) { imagetracker = FindObjectOfType <Imagetargettracker>(); } Getcurrecostatus = Scanstatus.SCANISDONE; //TODO:隐藏下载UI进度条 Uimanager.Getinstance().Hideprogress(); GameObject tmp = GameObject.Instantiate((GameObject)obj); tmp.transform.SetParent(Cloudrecoeventhandler.Getinstance().imagetargettemplate.transform); tmp.transform.localPosition = Vector3.zero; tmp.transform.localEulerAngles = Vector3.zero; imagetracker.targetdata.losetype = baseoperation.config.bundlelosetype; imagetracker.targetdata.rotation = baseoperation.config.bundlerotation; imagetracker.targetdata.scale = baseoperation.config.bundlescale; imagetracker.targetdata.centeroffset = baseoperation.config.bundleposistionoffset; imagetracker.targetdata.Instantiatedobject = tmp; switch (curtrackerstatus) { case Trackerstatus.LOSE: Ontrackerloseevent(imagetracker, null); break; case Trackerstatus.FOUND: Ontrackerfoundevent(imagetracker, null); break; } if (onparsingitemend != null) { onparsingitemend.Invoke(); } }
private void Start() { browserdata = Resources.Load <Browserdata>("Clientconfig"); switch (Application.internetReachability) { case NetworkReachability.NotReachable: netreachable = false; break; case NetworkReachability.ReachableViaCarrierDataNetwork: Uimanager.Getinstance().Showtips("当前网络为3G/4G"); netreachable = true; break; case NetworkReachability.ReachableViaLocalAreaNetwork: Uimanager.Getinstance().Showtips("已连接到WIFI"); netreachable = true; break; } GetNetreachable(true); }
public override void Bindingeventstobtn() { //需要隐藏的界面 Baseview hide = Uimanager.Getinstance().Getviewfromviewid(typeof(Mainview).Name); //打开showcase view Baseview showcaseview = Uimanager.Getinstance().Getviewfromviewid(typeof(Showcaseview).Name); showcase.onClick.AddListener(() => { Uistack.Getinstance().Openview(showcaseview, Viewstatus.SHOW); Uistack.Getinstance().Openview(hide, Viewstatus.SHOW); }); //打开menu view Baseview menuview = Uimanager.Getinstance().Getviewfromviewid(typeof(Menuview).Name); menu.onClick.AddListener(() => { Uistack.Getinstance().Openview(menuview, Viewstatus.SHOW); Uistack.Getinstance().Openview(hide, Viewstatus.SHOW); }); //打开scan view Baseview scanview = Uimanager.Getinstance().Getviewfromviewid(typeof(Scanview).Name); gotoscan.onClick.AddListener(() => { Cloudrecoeventhandler.Getinstance().Restartscanning(); Uistack.Getinstance().Openview(scanview, Viewstatus.SHOW); Uistack.Getinstance().Openview(hide, Viewstatus.SHOW); }); }
public void Onerror(string _errormsg) { Uimanager.Getinstance().Showtips(_errormsg); Getcurrecostatus = Scanstatus.GOTOSCAN; Uimanager.Getinstance().Hideprogress(); }
/// <summary> /// 开始录制视频回调 /// </summary> private void Onstartrecording() { isstarted = true; Debug.Log("开始录制" + isstarted); Uimanager.Getinstance().Showtips("开始录制"); }
//----------------------- Vuforia implemente function------------------------------ public void OnInitialized() { Debug.Log("Cloud Reco initialized"); sm.isinited = true; Uimanager.Getinstance().Showtips("初始化完成"); }
public override void Updateviewstatus(Viewstatus _viewstatus) { base.Updateviewstatus(_viewstatus); Uimanager.Getinstance().Getviewfromviewid(typeof(Signelement).Name).Updateviewstatus(_viewstatus); }