物体在-z和-x角落上以z轴为中心旋转180度。

6

基本上,我有一个旋转的对象。它是一种点击和拖动类型的旋转,但当对象面对-X-Z角落或左下角时,有可能在再次点击时完全翻转180度反方向​​。这非常麻烦,我甚至知道这发生在哪一行代码中。以下是单击代码:

void OnMouseDown() 
{
    Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
    pos = Input.mousePosition - pos;
    baseAngle = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg;
    baseAngle -= Mathf.Atan2(transform.right.y, transform.up.x) * Mathf.Rad2Deg;
    startRotation = transform.rotation;
}

baseAngle -= Mathf.Atan2(transform.right.y, transform.up.x) * Mathf.Rad2Deg;

这行代码让我很头疼。我尝试了修改“.x”和“.z”的参数,但是还是无法解决问题。如果我将“.x”改为“.z”,问题就会出现在右下角。如果我尝试修改“.y”,那么离我想要的结果就更远了。

图片:

顺便提一下,Z轴垂直向上,X轴水平向右。非常感谢任何帮助。

1个回答

1
问题似乎是我错过了.x、.y和.z的某种组合。当我尝试用"transform.up.y"替换"transform.up.x"时,问题停止了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接