Пишу скрипт управления маневровыми кораблями космического корабля. У меня есть родительский объект (пока что коробка) и дочерние ему пустые объекты (положения движков) с которых я беру transform.position. Установлены они на одном расстоянии от центра корабля, строго друг на против друга. Ну и смотрят локальной y осью в противоположные стороны. Код такой:
Синтаксис:
Используется csharp
private void FixedUpdate()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
rb.AddForceAtPosition(thruster1.transform.up, thruster1.transform.position);
rb.AddForceAtPosition(thruster2.transform.up, thruster2.transform.position);
}
{
if (Input.GetKey(KeyCode.LeftArrow))
{
rb.AddForceAtPosition(thruster1.transform.up, thruster1.transform.position);
rb.AddForceAtPosition(thruster2.transform.up, thruster2.transform.position);
}
Все ок, корабль делает крен, движения никакого нет, только вращение (т.к двигатели одинаковы по силе и находятся строго друг напротив друга, следовательно моменты их сил равны). Но если я переношу один движок дальше от центра корабля, по логике момент его силы растет, и он должен толкать корабль активнее, следовательно должна происходить расбалансировка и корабль должен мало того что неадекватно вращаться, так еще и двигаться в какую-то сторону, но этого не происходит. Что я делаю не так?