2017-08-05 90 views
0

在Unity3D中,我正在努力控制球。我的目標如下:Unity3D控制球

  • 讓球旋轉球面臨
  • 確保球在視覺上旋轉的球的方向
  • 移動正在

我我試圖做的幾乎完成了這個character controller腳本我寫道:

transform.Rotate (new Vector3(-Input.GetAxis ("Horizontal") * rotationSpeed, 0, 0)); 
Vector3 forward = Input.GetAxis ("Vertical") * transform.forward * moveSpeed; 

controller.Move (forward); 
controller.SimpleMove (Physics.gravity); 

M這個腳本的問題在於球不會在視覺上「滾動」。

我試圖用Rigidbody來解決這個問題:

float movementHorizontal = Input.GetAxis("Horizontal"); 
float movementVertical = Input.GetAxis("Vertical"); 

Vector3 movementVector = new Vector3(movementHorizontal, 0.0f, movementVertical); 
GetComponent<Rigidbody>().AddForce(movementVector * moveSpeed * Time.deltaTime); 

但是在這種情況下,您將無法使用旋轉WAD像第一個例子了,然後180度。雖然它確實解決了視覺問題。

我怎麼能讓我的球隨着「A」和「D」鍵旋轉,然後以「W」的方向朝着球面對的方向旋轉,同時也可以在視覺上旋轉?

+0

與*** transform.Rotate嘗試(Vector3.up * 2)***,我知道我有一個例子某處.... – HelderSepu

+0

我有問題時,我使用第一個腳本旋轉我的球,當球滾動時它會垂直移動,因爲由於「轉換,向前」調用球將面朝上 – Ryan

+0

請看這裏:https://github.com/ heldersepu/hs-unity/tree/master/Labyrinth – HelderSepu

回答

2

看看一個這個例子: http://unity3d.azurewebsites.net/Labyrinth/

  • 移動球使用箭頭鍵
  • 移動攝像頭與鍵盤(#5會追)
  • 放大/縮小帶 - 鍵
  • 用V鍵改變視角

運動背後的代碼是在這裏:
https://github.com/heldersepu/hs-unity/blob/master/Labyrinth/Assets/Movement.cs

+0

我感謝所有的幫助,但我的問題再次是視覺方面。該腳本將只在我凍結旋轉時起作用。我希望我的球在移動時可視化旋轉 – Ryan

+0

@Ryan您可以將您的項目添加到GitHub嗎? – HelderSepu

+0

https://github.com/RyanKennell/AlphaProject – Ryan