2014-01-07 44 views
1

我學習使用Unity3d,並且我想要對角旋轉一個立方體,以便在按左箭頭鍵+ q或右箭頭鍵+ w時對角旋轉。任何人都可以用我的查詢協助我嗎?unity3d - 幫助需要對角旋轉一個立方體

這是我的時刻:

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

你的意思是對角線在2不同軸? –

+0

你的意思是你所做的'transform.Rotate'是否工作不正常?或者是其他東西? –

+0

如果我同時按下左箭頭鍵和q鍵,我希望立方體向左上角旋轉。我試過了旋轉函數:transform.Rotate(rotateAmount ===>這是一個公共的vec3變量* Time.deltaTime),但是當同時按下兩個鍵時,這似乎不起作用。 – user1283674

回答

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 ,我希望這可以工作(未經測試)

+0

非常感謝,我會試一試... – user1283674

+0

接受答案,如果它有效,如果它不告訴我發生了什麼 – MadJohny

+0

這適用於我。非常感謝;) – user1283674