unity3d - 对角旋转立方体所需的帮助

时间:2014-01-07 10:32:01

标签: unity3d

我正在学习使用Unity3d,我想对角旋转一个立方体,以便当我按下左箭头键+ q或右箭头键+ w时,它似乎是对角旋转。任何人都可以帮我解决问题吗?

这就是我现在所拥有的:

void Update () 
{
   if(Input.GetKey(KeyCode.UpArrow)) //move forward
      transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);

   if(Input.GetKey(KeyCode.DownArrow)) //move backward
      transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);

   if(Input.GetKey(KeyCode.LeftArrow)) //turn left
      transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);

   if(Input.GetKey(KeyCode.RightArrow)) //turn right
      transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
}

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

if(Input.GetKey(KeyCode.Q)) { //turn diagonally to the left
transform.Rotate(new Vector3 (moveSpeed * Time.deltaTime, 0f, moveSpeed * Time.deltaTime));
}
if(Input.GetKey(KeyCode.E)) { //turn diagonally to the right
transform.Rotate(new Vector3 (moveSpeed * Time.deltaTime, 0f, -moveSpeed * Time.deltaTime));
}

如果它向错误的方向旋转,请将-moveSpeed替换为moveSpeed,并将moveSpeed替换为-moveSpeed,我希望这可行(未经测试)