- Home /
AddForceAtPosition moment of force not correct work
Hello friends! First time asking a question on this website, thanks for any help.
I'm trying to make a controlling code of spaceship with thrusters using the base physics laws. So i have a cube, and two child-empty objects attached to it - thruster positions.
These objects are positioned at the same distance opposite to each other from center of a mass of the parent cube (one of the object is rotated down, so his local Y axis - green arrow - is positioned opposite to green axis of other object) Now I'm applying force at position of these thrusters in transform.up of their direction and the object starts to roll without moving (everything balaced) - cool, that's how it supposed to be. But! If i position one object in longer distance from center of mass, i know that the momentum of it's force must grow, so object has to start rotate unbalancing - including moving in some direction, not only rotating. But this don't happens, the cube rolls in the same way like in previous situation. Where am i mistaking? Code:
public class ShipControlPhys : MonoBehaviour
{
public Rigidbody rb;
public GameObject thruster1;
public GameObject thruster2;
public GameObject thruster3;
public GameObject thruster4;
public float roll_power;
private void FixedUpdate()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
rb.AddForceAtPosition(thruster1.transform.up, thruster1.transform.position);
rb.AddForceAtPosition(thruster2.transform.up, thruster2.transform.position);
}