我有一个受重力和碰撞效应影响的物体。我怎样才能使它在 X 轴上保持恒定的速度?
我有类似的东西:
void Update () {
rigidbody.velocity = 5 * new Vector3(1f,0f,0f);
}
我有一个受重力和碰撞效应影响的物体。我怎样才能使它在 X 轴上保持恒定的速度?
我有类似的东西:
void Update () {
rigidbody.velocity = 5 * new Vector3(1f,0f,0f);
}
如果您真的希望物体无论如何都具有恒定的速度,那么您不希望它受到碰撞和重力的影响。在这种情况下,您应该选中刚体属性中的运动学复选框。这样,您将能够从脚本中移动对象的变换,并且对象的位置不会受到任何其他因素的影响。
请注意,物理引擎的更新间隔与其他基本游戏逻辑不同。
特别是,Rigidbody
每次调用 的状态都会更新一次FixedUpdate()
,因此,如果您想覆盖物理引擎的任何结果,您可能希望在您自己的内部进行FixedUpdate()
,而不是Update()
.
除了每个人已经告诉过您的内容之外,我还要补充一点,如果您想在特定方向(在您的情况下为 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);
}