我正在学习使用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);
}
答案 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,我希望这可行(未经测试)