Unity 3D中的旋转

时间:2016-04-10 08:07:57

标签: unity3d rotation degrees

我在Unity中有旋转问题。我正在从文件中读取度数值,我想围绕x,y, and z axes进行轮换。但是,当我使用此代码时,旋转的度数值会发生变化。资产模块Suited Man正在进行不同的轮换。

target = Quaternion.Euler(x, y, z)
transform.rotation = Quaternion.Slerp(startpos, target, Timer.fracComplete)    

我该如何解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用Quaternion.eulerAngles获取Quaternion的Vector3表示形式,然后使用Quaternion.Euler将Vector3转换回Quaternion。

示例:

Vector3 rot = myTransform.rotation.eulerAngles;
rot = new Vector3(rot.x,rot.y+180,rot.z);
myTransform.rotation = Quaternion.Euler(rot);

<强>更新

这是我的测试代码,当我按下&#39; D&#39;时,对象在Y轴上旋转。键。

public class BallControl : MonoBehaviour
{
    public Transform test;

    void Start()
    {
    }

    void Update()
    {        
        if (Input.GetKey(KeyCode.D))
        {
            Vector3 rot = test.rotation.eulerAngles;
            rot = new Vector3(rot.x, rot.y + 1, rot.z);
            test.rotation = Quaternion.Euler(rot);
        }
    }
}

Euler to Quaternion

Quaternion to AxisAngle