我有一个脚本,它基本上只是旋转相机的x轴和y轴。
void Update () {
float xRot = Input.GetAxis("Mouse X");
float yRot = Input.GetAxis("Mouse Y");
Vector3 rotate = new Vector3(xRot, yRot);
transform.Rotate(rotate);
}
看起来鼠标X的输入实际上是鼠标Y,反之亦然。我知道我可以通过在Vecort3变量的赋值中翻转xRot和yRot来解决问题。所以我想知道是否有更好的方法来获得鼠标的x轴和y轴,或者我是否只是偶然地修改了我的项目。也很高兴知道如何解决问题。
答案 0 :(得分:2)
这不是问题,只是事情如何。
左右是横轴。您的第一个想法是将它们分配给x值。问题是旋转围绕给定轴旋转,并且很可能左/右应该使物体向左或向右旋转。
但要做到这一点,你可以想到一个杆子(就像一个钢管舞者),你会绕着它旋转。如果你真的很接近它,那就像是左右旋转。但是这个轴正在上升,它是向上的向量。
这意味着要左右旋转,您可以围绕向上矢量旋转,但使用左右按钮作为水平轴。
显然,如果你想旋转以便向下看,你将围绕右(x)轴旋转并使用垂直运动。
总之,没有比反转输入更简单或更多的逻辑解决方案。你可以改变输入设置,使水平是垂直的,反之亦然,但我不推荐它。
答案 1 :(得分:0)
var pos = Input.mousePosition;
var x = pos.x;
var y = pos.y;
屏幕或窗口的左下角位于(0,0)。屏幕或窗口的右上角位于(Screen.width,Screen.height)。