正如问题的标题所示,我试图在屏幕上获取透视相机的触摸位置。
当我点击一个按钮时,我的角色有能力传送"或者将它的位置/变换改为我的手指的同一区域,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轴进行编码,所以我不确定为什么它不起作用。
任何提供的帮助将不胜感激。
谢谢。圈子区域是我触摸的地方,你可以看到我的精灵去了画布上的位置而不是游戏世界。