在屏幕上获取透视相机的触摸位置

时间:2017-10-18 22:28:03

标签: unity3d unity5

正如问题的标题所示,我试图在屏幕上获取透视相机的触摸位置。

当我点击一个按钮时,我的角色有能力传送"或者将它的位置/变换改为我的手指的同一区域,Z轴是硬编码的。

现在我强调"透视相机"因为当相机是正交相机时,以下工作正常。

    if (canTeleport == true) {
        if (Input.GetMouseButtonDown (0)) {


            //fingerPos = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position); 
            //  fingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); //Desktop
            //  transform.position = fingerPos;
            //  Debug.Log (transform.position);


            //Needed for Mouse
            //fingerPos = Input.mousePosition;
            //Needed for Finger                
            fingerPos = Input.GetTouch(0).position;


            //Oth Camera
            fingerPos.z = -36.1f;
            fingerPos = Camera.main.ScreenToWorldPoint (fingerPos); 

            //Pers Camera
           // Vector3 screenPosition= new Vector3(0,0,0);
             //fingerPos = GetWorldPositionOnPlane(screenPosition, -36.1f);

            fingerPos.z = -36.1f;
            transform.position = fingerPos;
            Debug.Log (transform.position);

            canTeleport = false;
        }
    }

但是从透视它没有,我理解2D和3D空间是不同的,但唯一重要的是Z轴,并且我很难对Z轴进行编码,所以我不确定为什么它不起作用。

任何提供的帮助将不胜感激。

谢谢。

更新 enter image description here

圈子区域是我触摸的地方,你可以看到我的精灵去了画布上的位置而不是游戏世界。

0 个答案:

没有答案