2012-12-22 48 views
2


我有一個對象受重力和碰撞的影響。 如何讓它在X軸上保持恆定的速度?
我有類似的東西:團結剛體恆速

void Update() {   
    rigidbody.velocity = 5 * new Vector3(1f,0f,0f); 
} 

回答

2

注意,物理引擎在比其它基本的遊戲邏輯不同的時間間隔更新。

尤其是Rigidbody的狀態每次調用更新一次,以​​,因此,如果你想覆蓋你可能想要做你自己FixedUpdate()內的物理引擎的任何結果,而不是Update()

+2

+1另一種方法可能是隻用一次武力。然後物理引擎應該保持恆定速度,只要它垂直於重力,並保存固定更新代碼。 – Kay

+0

如果我只是在我的對象由於碰撞而很快停止的情況下施加一個力量。 – Dan

2

如果你確實希望物體具有恆定的速度而不管它是什麼,那麼你不希望它受到碰撞和重力的影響。在這種情況下,您應該檢查剛體屬性中的Kinematic複選框。這樣,您就可以從腳本中移動對象的變換,並且對象的位置不會受到其他任何影響。

0

除了什麼大家都已經告訴你,我想補充一點,如果你想保持一個恆定的速度在一個特定的方向(你的情況X軸)更正確的代碼將是:

void FixedUpdate() { 
    // We need to keep the old y and z component if we want the object to still be affected by gravity and other things 
    rigidbody.velocity = new Vector3(5.0f , rigidbody.velocity.y, rigidbody.velocity.z); 
}