예제 #1
0
    //移动
    public void MoveObject(Touch touch)
    {
        if (touch.phase == TouchPhase.Began)
        {
            arObjectTracker.StopAR();

            _beginMovePosition = new Vector3(touch.position.x, touch.position.y, 0);
        }

        if (touch.phase == TouchPhase.Moved)
        {
            Vector3 objPos = Camera.main.WorldToScreenPoint(_target.transform.position);
            Vector3 pos    = new Vector3(touch.position.x, touch.position.y, 0) - _beginMovePosition;

            objPos += pos;

            _target.transform.position = Camera.main.ScreenToWorldPoint(objPos);
            _beginMovePosition         = new Vector3(touch.position.x, touch.position.y, 0);
        }

        if (touch.phase == TouchPhase.Ended)
        {
            _arObjectTrackle.UpdateSlamPos();

            arObjectTracker.StartAR();
        }
    }
예제 #2
0
    public void InfoData(string name)
    {
        isShow = true;
        info   = "";
        if (cloudItem == CloudItem.DishData)
        {
            for (int i = 0; i < dishItem.Count; i++)
            {
                if (dishItem[i].error != null && dishItem[i].error != "")
                {
                    ErrorShow(dishItem [i].error);
                    break;
                }
                info += dishItem [i].name + " : " + dishItem [i].probability + "\n";
                if (dishItem [i].name.Contains(name))
                {
                    isShow = false;
                }
            }
        }
        else if (cloudItem == CloudItem.CommonData)
        {
            for (int i = 0; i < commonItem.Count; i++)
            {
                if (commonItem[i].error != null && commonItem[i].error != "")
                {
                    ErrorShow(commonItem [i].error);
                    break;
                }
                info += commonItem [i].name + " : " + commonItem [i].score + "\n";
                if (commonItem [i].name.Contains(name))
                {
                    isShow = false;
                }
            }
        }
        else if (cloudItem == CloudItem.SceneData)
        {
            for (int i = 0; i < sceneItem.Count; i++)
            {
                if (sceneItem[i].error != null && sceneItem[i].error != "")
                {
                    ErrorShow(sceneItem [i].error);
                    break;
                }
                info += sceneItem [i].keyword + " : " + sceneItem [i].score + "\n";
                if (sceneItem [i].keyword.Contains(name))
                {
                    isShow = false;
                }
            }
        }
        text.text = info;
        if (isShow)
        {
            if (!objectTracker.activeSelf)
            {
                objectTracker.SetActive(true);
            }

            GameObject obj = objectTracker.transform.GetChild(index).gameObject;

            if (page == imageName && obj.activeSelf)
            {
                tracker.StopAR();
                obj.transform.position = new Vector3(0, -50f, 1000f);
                obj.GetComponent <BaiduARObjectTrackable> ().UpdateSlamPos();
                tracker.StartAR();
            }
            else
            {
                tracker.SetActiveTrack(index);
                page = imageName;
            }
        }
        cloudItem = CloudItem.None;
    }