Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity中鼠标外观脚本中的偏移量_C#_Unity3d - Fatal编程技术网

C# Unity中鼠标外观脚本中的偏移量

C# Unity中鼠标外观脚本中的偏移量,c#,unity3d,C#,Unity3d,我的目标应该是看鼠标,而不是看后面 我的代码: var dir = Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position); var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg; transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); 它看起来像: (我不得不画鼠标,因为

我的目标应该是看鼠标,而不是看后面

我的代码:

var dir = Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position);
var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
它看起来像:

(我不得不画鼠标,因为我用的照相工具没有放进鼠标)

有没有办法让它直接看着它,而不是在我移动鼠标的时候就在它后面?如果你使用不同的方法,你能解释一下为什么我的方法不起作用,并说明为什么你的方法起作用吗?不过,我更愿意保留我的方法

尝试使用,您所需要做的就是将对象要面对的位置传递给它

您的代码如下所示:

public void Update {
     Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
     transform.LookAt(mousePos);
}

如果您只想让对象旋转而不向上\向下看,那么请保持对象在相同y值上的位置。

尝试添加90度或45度来固定旋转。

我该怎么做?(锁定x轴和y轴上的旋转)一种方法是将你所看的位置移动到与你相同的水平,这样你就不用向下或向上看,而是直视它。mousePos.y=transform.position.y