在vuforia Unity3d的用户定义目标中拖动对象

在vuforia Unity3d的用户定义目标中拖动对象,unity3d,augmented-reality,vuforia,Unity3d,Augmented Reality,Vuforia,我正在开发vuforia的用户定义目标包。软件包正在工作,但我有问题,当我试图拖动我的三维模型 该代码在没有用户定义目标的情况下工作 代码如下: GameObject target = GameObject.FindGameObjectWithTag("Target"); if(Input.touchCount == 1) { if (theTouch.phase == TouchPhase.Began)

我正在开发vuforia的用户定义目标包。软件包正在工作,但我有问题,当我试图拖动我的三维模型

该代码在没有用户定义目标的情况下工作

代码如下:

    GameObject target = GameObject.FindGameObjectWithTag("Target");
    if(Input.touchCount == 1)
            {
                if (theTouch.phase == TouchPhase.Began) 
                {
                    Debug.Log("Touch phase began at: " + theTouch.position);

                    RaycastHit hit = new RaycastHit();
                    if (Physics.Raycast(ray, out hit, maxPickingDistance)) 
                    { 
                        pickedObject = target.transform;                    
                    } 
                    else
                    {
                        pickedObject = null;
                    }
                } 
                else if (theTouch.phase == TouchPhase.Moved) 
                {
                    Debug.Log("Touch phase Moved");

                    if (pickedObject != null) 
                    {
                        Vector3 translationInCameraRef;
                        Vector2 screenDelta = theTouch.deltaPosition;

                        float halfScreenWidth = 0.5f * Screen.width;
                        float halfScreenHeight = 0.5f * Screen.height;

                        float dx = screenDelta.x / halfScreenWidth;
                        float dy = screenDelta.y / halfScreenHeight;

                        Vector3 objectToCamera = 
                            pickedObject.transform.position - Camera.main.transform.position;
                        float distance = objectToCamera.magnitude;

                        float fovRad = Camera.main.fieldOfView * Mathf.Deg2Rad;
                        float motionScale = distance * Mathf.Tan(fovRad/2);

                        if(Application.loadedLevelName == "LoadModel")
                        {
                             translationInCameraRef = 
                                new Vector3(motionScale * dx, motionScale * dy, 0);
                        }
                        else{
                             translationInCameraRef = 
                                new Vector3(motionScale * dx , motionScale * dy , motionScale * dy);
                        }

                        Vector3 translationInWorldRef =
                            Camera.main.transform.TransformDirection(translationInCameraRef);

                        pickedObject.position += translationInWorldRef * 5.0f;
                    }
                } 
                else if (theTouch.phase == TouchPhase.Ended) 
                {
                    Debug.Log("Touch phase Ended");

                    pickedObject = null;
                }
              }
有人知道这件事吗?请帮我解决这个问题


谢谢。

您到底遇到了什么问题?对象没有被拖动@戈尔格卡