我正在尝试根据箭头键旋转对象,但它会卡住。左右键完美地工作,但上下键卡在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);
}
}
答案 0 :(得分:1)
来自Unity3D API,
<强> Transform.eulerAngles 强>
仅使用此变量读取并将角度设置为绝对值。 不要增加它们,因为当角度超过360时它会失败 度。改为使用Transform.Rotate。
因此请使用Transform.Rotate,
if(Input.GetKey (KeyCode.LeftArrow))
{
Camera.main.transform.Rotate(Vector3.left * Time.deltaTime);
}