/// <summary> /// Tries to move the entity in a certain direction using forces, but never using more force than specified. /// </summary> /// <param name="movement">The target movement, can be zero to try to stop moving.</param> /// <param name="maxForce">The maximum allowed force to use.</param> public void Move(Vector3 movement, Vector3 maxForce) { maxForce = maxForce.Absolute(); Vector3 requiredForce = (movement - Velocity) * Mass; requiredForce -= force; AddForce(VMath.ClampComponents(requiredForce, -maxForce, maxForce)); }