对象在-z和-x角的z轴上翻转180度

时间:2015-12-17 00:06:29

标签: c# unity3d unity5

基本上我有一个旋转的物体。它是一种单击和拖动类型的旋转,但是当对象面向-z -x角或左下角时,再次单击时,它有可能以相反的方式完全翻转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”结尾,但我无法理解。当我用“.z”切换“.x”时,问题就出现在右下角。如果我甚至搞砸了“.y”,我只能远离我想要的东西。

照片:

顺便说一下,Z轴垂直向上,X轴水平向右。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

问题似乎是我错过了.x,.y和.z的组合。当我尝试用“transform.up.y”替换“transform.up.x”时,我就停止了这个问题。