eulerAngles无法正常工作的对象旋转

时间:2015-02-05 00:56:30

标签: unity3d

我正在尝试根据箭头键旋转对象,但它会卡住。左右键完美地工作,但上下键卡在90度。这是我的代码:

void turnCube()
{
        if(Input.GetKey (KeyCode.LeftArrow))
        {
            Camera.main.transform.parent.transform.eulerAngles += new Vector3(0,1,0);
        }

        if(Input.GetKey (KeyCode.RightArrow))
        {
            Camera.main.transform.parent.transform.eulerAngles += new Vector3(0,-1,0);
        }

        if(Input.GetKey (KeyCode.UpArrow))
        {
            Camera.main.transform.parent.transform.eulerAngles += new Vector3(1,0,0);
        }

        if(Input.GetKey (KeyCode.DownArrow))
        {
            Camera.main.transform.parent.transform.eulerAngles += new Vector3(-1,0,0);
        }
}

1 个答案:

答案 0 :(得分:1)

来自Unity3D API,

  

<强> Transform.eulerAngles

     

仅使用此变量读取并将角度设置为绝对值。   不要增加它们,因为当角度超过360时它会失败   度。改为使用Transform.Rotate。

因此请使用Transform.Rotate

if(Input.GetKey (KeyCode.LeftArrow))
{
    Camera.main.transform.Rotate(Vector3.left * Time.deltaTime);
}