基本上,我有一个旋转的对象。它是一种点击和拖动类型的旋转,但当对象面对-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轴水平向右。非常感谢任何帮助。