Coliders и терраин

Физика в Unity

Re: Coliders и терраин

Сообщение Ert Donuell 16 фев 2011, 12:09

А ещё можно запретить двигаться по оси y без вмешательства не PhysXовских способов перемещения.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Coliders и терраин

Сообщение shutov 16 фев 2011, 15:40

ну у меня все объекты немного над терраином, ну те объекты, у которых rigidbody есть, а если отключить use gravity то как управлять юнитами? они не по терраину будут бегать....пробовал запретить двигаться по оси y ( это вверх типа), вроде все норм, но когда объект на холме, то все равно прыгает, иногда даже бывает объекты просто улетают))) смотришь смотришь как они там прыгают...а потом раз полетел, и не поймаешь :D
Аватара пользователя
shutov
UNITрон
 
Сообщения: 173
Зарегистрирован: 16 ноя 2010, 13:31
Откуда: Ульяновск
  • ICQ

Re: Coliders и терраин

Сообщение Ert Donuell 16 фев 2011, 23:42

А если попробовать попробовать заменить "Use Gravity" на AddForce(-rigidbody.mass * Vector3.up * 9.807);
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Coliders и терраин

Сообщение shutov 16 фев 2011, 23:44

хорошо, сейчас попробую
Аватара пользователя
shutov
UNITрон
 
Сообщения: 173
Зарегистрирован: 16 ноя 2010, 13:31
Откуда: Ульяновск
  • ICQ

Re: Coliders и терраин

Сообщение waruiyume 17 фев 2011, 03:19

Ert Donuell писал(а):А если попробовать попробовать заменить "Use Gravity" на AddForce(-rigidbody.mass * Vector3.up * 9.807);

А не легче "rigidbody.velocity+=Vector3(0,-9.807,0)*Time.deltaTime;" ?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Coliders и терраин

Сообщение Ert Donuell 17 фев 2011, 14:51

waruiyume писал(а):А не легче "rigidbody.velocity+=Vector3(0,-9.807,0)*Time.deltaTime;" ?


А оно разве не будет увеличивать скорость движения вниз на 9.807 * Time.deltaTime с каждым фреймом всё сильнее и сильнее? И потом, нам нужна сила, а не скорость) Плюс учёт массы.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Coliders и терраин

Сообщение waruiyume 18 фев 2011, 03:24

"rigidbody.velocity+=Vector3(0,-9.807,0)*Time.deltaTime;"=Ускорение свободного падения (9.8 м/с)-вместо "Use Gravity"


Проблема в этой строке: "transform.Translate(Vector3.forward * Time.deltaTime * (engineForce + pitchForce));"
"transform.Translate"-засовывает объект в коллайдер другого объекта, затем физика изменяет его скорость чтобы "выплюнуть" :D
Можно двигать Rigidbody форсами:
Синтаксис:
Используется javascript
@script RequireComponent(Rigidbody)
private var ForceVector : Vector3;
private var ShipRigidbody : Rigidbody;
ShipRigidbody = rigidbody;
var maxSpeed : float = 50;
var Speed : float = 50;
var tar:Transform;
private var FV : Vector3;
private var tr:Transform;
tr=transform;

function Update ()
        {
        FV=(tar.position-tr.position).normalized;
        }

function FixedUpdate ()
        {
        ForceVector = FV*Speed;
                        var newVel = ShipRigidbody.velocity+ForceVector;
                        if(newVel.magnitude>maxSpeed)
                        {
                                ForceVector-=newVel-newVel.normalized*maxSpeed;
                        }
                        ForceVector.y=0;
                        ShipRigidbody.AddForce(ForceVector*Time.deltaTime*2, ForceMode.VelocityChange);
        }
 

С вращениями тот-же прикол.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Coliders и терраин

Сообщение shutov 18 фев 2011, 20:34

спасибо большое :)
Аватара пользователя
shutov
UNITрон
 
Сообщения: 173
Зарегистрирован: 16 ноя 2010, 13:31
Откуда: Ульяновск
  • ICQ

Re: Coliders и терраин

Сообщение shutov 18 фев 2011, 21:34

ток что означает tar? не могу понять
Аватара пользователя
shutov
UNITрон
 
Сообщения: 173
Зарегистрирован: 16 ноя 2010, 13:31
Откуда: Ульяновск
  • ICQ

Re: Coliders и терраин

Сообщение waruiyume 18 фев 2011, 23:24

shutov писал(а):ток что означает tar? не могу понять

"transform"цели.
А может с колесами лучше попробовать?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Coliders и терраин

Сообщение shutov 19 фев 2011, 00:09

ну я понял что transform, но в inspestor надо указать объект, а что за объект? чтот я просто не въехал...объясните пжл
Аватара пользователя
shutov
UNITрон
 
Сообщения: 173
Зарегистрирован: 16 ноя 2010, 13:31
Откуда: Ульяновск
  • ICQ

Re: Coliders и терраин

Сообщение Ert Donuell 19 фев 2011, 00:26

Объект цели
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Coliders и терраин

Сообщение waruiyume 22 фев 2011, 02:41

После строки "transform.Translate(Vector3.forward * Time.deltaTime * (engineForce + pitchForce));"
делайте такую проверку:
Синтаксис:
Используется javascript
if (rigidbody.velocity.y>0)
        {
                rigidbody.velocity.y=0;
        }
 

Должно помочь :)
У вас есть проверка контакта с землей? Если нет, тогда это танк с реактивным двигателем :D
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Coliders и терраин

Сообщение shutov 22 фев 2011, 12:51

ага, спасибо большое, сегодня проверю, да есть проверка))) не то бы еще одна проблема была :D
Аватара пользователя
shutov
UNITрон
 
Сообщения: 173
Зарегистрирован: 16 ноя 2010, 13:31
Откуда: Ульяновск
  • ICQ

Re: Coliders и терраин

Сообщение shutov 24 фев 2011, 17:56

хм, к сожалению ничего не помогло(((:( если использовать ваши скрипты, то объект просто начинает крутиться, в воздухе((, и еще кое-что заметил, вроде rigidbody просто не срабатывает, потому что в начале, я объект размещаю немного над terrain'ом, а при запуске он не падает, а остается в воздухе, хотя на нем висит rigidbody, странно :-?
Аватара пользователя
shutov
UNITрон
 
Сообщения: 173
Зарегистрирован: 16 ноя 2010, 13:31
Откуда: Ульяновск
  • ICQ

Пред.След.

Вернуться в PhysX

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

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