Стабилизация объекта в пространстве

Физика в Unity

Стабилизация объекта в пространстве

Сообщение GrueGames 12 янв 2010, 06:53

Добрый день!

Есть объект с физикой, без гравитации. Я его перемещаю в пространстве:
Код: Выделить всё
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);

но получается фигня полная - он начинает болтаться как будто на пружинках, а надо чтобы он плавно сместился на нужную высоту, и также с поворотом, и больше не раскачивался.
Спасибо!
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Стабилизация объекта в пространстве

Сообщение GrueGames 12 янв 2010, 07:59

Извините кажется я сам разобрался :ymparty:
Это можно сделать с помощью Configurable Joint
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ


Вернуться в PhysX

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1