Есть объект с физикой, без гравитации. Я его перемещаю в пространстве:
- Код: Выделить всё
if (thrust) rigidbody.AddRelativeForce (Vector3.forward * 10); //ускорение
if (left) rigidbody.AddRelativeTorque (Vector3.down * 10); //повороты
if (right) rigidbody.AddRelativeTorque (Vector3.up * 10);
Подскажите пожалуйста, как его стабилизировать. То есть как сделать чтобы он после столкновения пытался вернуться в вертикальное положение и на заданную высоту, наподобие гироскопической системы летательных аппаратов, или как будто тело, всплывающее на поверхность воды. Вобщем как sigway.
Я пробовал вот так сделать:
- Код: Выделить всё
//стабилизация позиции
if (transform.position.y > 0) rigidbody.AddForce (0, -5, 0);
if (transform.position.y < 0) rigidbody.AddForce (0, 5, 0);
//стабилизация вращения
if (transform.rotation.x > 0) rigidbody.AddTorque (Vector3.left * 2);
if (transform.rotation.x < 0) rigidbody.AddTorque (Vector3.right * 2);
if (transform.rotation.z > 0) rigidbody.AddTorque (Vector3.back * 2);
if (transform.rotation.z < 0) rigidbody.AddTorque (Vector3.forward * 2);
но получается фигня полная - он начинает болтаться как будто на пружинках, а надо чтобы он плавно сместился на нужную высоту, и также с поворотом, и больше не раскачивался.
Спасибо!