我有一個腳本附加到一個網格上,帶有一個運動學剛體,帶有凸網格對撞機,我想要移動。下面是我在更新功能撥打:爲剛體分配速度並不會做任何事
if (Input.GetKey(forwards)) {
Debug.Log("forwards!!");
//get current velocity in local space
Vector3 localVel = transform.InverseTransformDirection(body.velocity);
//alter so that forward component = speed
localVel = new Vector3(localVel.x, localVel.y, linearSpeed);
//convert back into world space and set to body
Vector3 worldVel = transform.TransformDirection(localVel);
body.velocity = worldVel;
}
其他信息:
body
是Rigidbody
變量,我在Start()
分配使用GetComponent<Rigidbody>();
linearSpeed
是float
值爲1
我得到了Debug.Log
輸出,但我的網格不動。有什麼明顯的我在這裏失蹤?這是我的第一個3D腳本,而不是一個2D遊戲。
你能否更詳細地解釋一下你在什麼地方四處走動,你是否想在改變方向時使用慣性。 –
@Neven,我不想使用慣性。假設我的角色目前在x方向上有一個速度,但它目前面向'z'方向,而我按'前進',我希望角色在z和x方向都有速度。這是我這段代碼 –
這就是說,這個問題的目的是爲了確定爲什麼人物的速度並沒有改變背後的原因。不是指出邏輯錯誤是不受歡迎的。 –