3


我有一个受重力和碰撞效应影响的物体。我怎样才能使它在 X 轴上保持恒定的速度?
我有类似的东西:

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

3 回答 3

2

如果您真的希望物体无论如何都具有恒定的速度,那么您不希望它受到碰撞和重力的影响。在这种情况下,您应该选中刚体属性中的运动学复选框。这样,您将能够从脚本中移动对象的变换,并且对象的位置不会受到任何其他因素的影响。

于 2012-12-23T17:23:15.563 回答
2

请注意,物理引擎的更新间隔与其他基本游戏逻辑不同。

特别是,Rigidbody每次调用 的状态都会更新一次FixedUpdate(),因此,如果您想覆盖物理引擎的任何结果,您可能希望在您自己的内部进行FixedUpdate(),而不是Update().

于 2012-12-22T22:38:18.623 回答
1

除了每个人已经告诉过您的内容之外,我还要补充一点,如果您想在特定方向(在您的情况下为 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);
}
于 2015-12-22T21:36:57.660 回答