Exemplo n.º 1
0
        //-------------------------------------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();
            }
        }
Exemplo n.º 2
0
        /// <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();
            });
        }
Exemplo n.º 3
0
 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);
     });
 }
Exemplo n.º 4
0
        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");
        }
Exemplo n.º 5
0
        /// <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();
            }
        }
Exemplo n.º 6
0
        /// <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();
            }
        }
Exemplo n.º 7
0
 public bool GetNetreachable(bool _showtip)
 {
     if (!netreachable && _showtip)
     {
         Uimanager.Getinstance().Showtips("网络不可用");
     }
     return(netreachable);
 }
Exemplo n.º 8
0
        public virtual void Initview()
        {
            self           = GetComponent <RectTransform>();
            originaloffset = self.anchoredPosition3D;
            viewid         = GetType().Name;

            Uimanager.Getinstance().Addviewtodictioary(viewid, this);
            Bindingeventstobtn();
        }
Exemplo n.º 9
0
        private IEnumerator Waittingtohide()
        {
            yield return(new WaitForSeconds(waitseconds));

            Updateviewstatus(Viewstatus.HIDE);
            callback = null;
            Uimanager.Getinstance().tips.Remove(this.gameObject);
            Destroy(this.gameObject, 1f);
        }
Exemplo n.º 10
0
        /// <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("识别图已存储到相册"));
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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();
        }
Exemplo n.º 13
0
        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
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
 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;
 }
Exemplo n.º 16
0
        /// <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("录像已存到本地");
        }
Exemplo n.º 17
0
        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();
            }
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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);
            });
        }
Exemplo n.º 20
0
 public void Onerror(string _errormsg)
 {
     Uimanager.Getinstance().Showtips(_errormsg);
     Getcurrecostatus = Scanstatus.GOTOSCAN;
     Uimanager.Getinstance().Hideprogress();
 }
Exemplo n.º 21
0
 /// <summary>
 /// 开始录制视频回调
 /// </summary>
 private void Onstartrecording()
 {
     isstarted = true;
     Debug.Log("开始录制" + isstarted);
     Uimanager.Getinstance().Showtips("开始录制");
 }
Exemplo n.º 22
0
 //----------------------- Vuforia implemente function------------------------------
 public void OnInitialized()
 {
     Debug.Log("Cloud Reco initialized");
     sm.isinited = true;
     Uimanager.Getinstance().Showtips("初始化完成");
 }
Exemplo n.º 23
0
 public override void Updateviewstatus(Viewstatus _viewstatus)
 {
     base.Updateviewstatus(_viewstatus);
     Uimanager.Getinstance().Getviewfromviewid(typeof(Signelement).Name).Updateviewstatus(_viewstatus);
 }