Контроль за скоростью и FixedUpdate ?

Программирование на Юнити.

Контроль за скоростью и FixedUpdate ?

Сообщение Denis3d 29 сен 2010, 13:24

Доброго времени суток !

Пытаюсь реализовать объект который при нажатии на кнопку начинает движение по прямой. Разгоняется до максимально разрешенной скорости и продолжает движение на этой скорости.
При нажатии кнопок объект смещается влево или право.

Код: Выделить всё
private var lineLeft : Vector3 = Vector3 (0, 0, 220);
private var lineRight : Vector3 = Vector3 (0, 0, -220);

function Update ()
{

    if(Input.GetButton("Vertical"))
   {
   
      rigidbody.AddForce(transform.forward *10);
            
   }
}   
   
function FixedUpdate ()    
{

    if(Input.GetKeyUp("left"))
   {
   
      rigidbody.MovePosition(rigidbody.position + lineLeft * Time.deltaTime);
         
   }
   
    if(Input.GetKeyUp("right"))
   {
   
      rigidbody.MovePosition(rigidbody.position + lineRight * Time.deltaTime);
         
   }
}


Как мне вычислить текущую скорость перемещения объекта ? что бы я мог поставить ограничение на скорость.
К примеру:

Код: Выделить всё
if(speed > 100)
{
speed = 100;
}


Теперь вопрос по FixedUpdate.
Как видно из кода я использую rigidbody.MovePosition. При Update объект смещается не на точное растояние и может отклонятся от заданного числа
(в доках так и написано, использовать FixedUpdate с rigidbody.MovePosition). Но если я использую FixedUpdate то реакция на нажатие кнопки какая то заторможенная
и не всегда срабатывает.

Ткните носом в каком направлении капать ? Спасибо.
Denis3d
UNец
 
Сообщения: 10
Зарегистрирован: 29 сен 2010, 12:56

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Neodrop 29 сен 2010, 13:28

Событие нажатия кнопки ловите не в FixedUpdate а в Update, тогда промахов не будет.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Denis3d 29 сен 2010, 13:37

Причина в том что если отслеживать событие кнопки в Update то объект смещается на неправильное растояние и всегда почему то разное но с небольшим отклонением. Сейчас попробую прицепить пример..
Denis3d
UNец
 
Сообщения: 10
Зарегистрирован: 29 сен 2010, 12:56

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Кульбит 29 сен 2010, 14:22

Выложите код.По видимому вы не только кнопки в Update вынесли.
Кульбит
UNIт
 
Сообщения: 59
Зарегистрирован: 18 сен 2010, 01:52

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Denis3d 29 сен 2010, 14:41

Кульбит писал(а):Выложите код.По видимому вы не только кнопки в Update вынесли.


Весь код в первом посте.
Denis3d
UNец
 
Сообщения: 10
Зарегистрирован: 29 сен 2010, 12:56

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Mr_Anderson 29 сен 2010, 14:50

Значение Input.GetButton() записывать в Update() в какую-нить объявленную переменную, затем в FixedUpdate() читать это значение из переменной и делать с физикой все что душе угодно в зависимости от того какая кнопка нажата. Нео уже объяснил все в предыдущих постах ;)
Mr_Anderson
UNIт
 
Сообщения: 143
Зарегистрирован: 16 апр 2009, 13:32

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Denis3d 29 сен 2010, 14:54

Все, понял ! Спасибо ! Не дошло сразу что речь идет только о кнопках :)
А что насчет скорости посоветуете ? как мне ее отловить что бы ограничение по скорости сделать ?
Denis3d
UNец
 
Сообщения: 10
Зарегистрирован: 29 сен 2010, 12:56

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Zaicheg 29 сен 2010, 14:59

Denis3d писал(а):Все, понял ! Спасибо ! Не дошло сразу что речь идет только о кнопках :)
А что насчет скорости посоветуете ? как мне ее отловить что бы ограничение по скорости сделать ?

Rigidbody.velocity
Mathf.Clamp
Vector3.magnitude
В этих областях почитайте.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Кульбит 29 сен 2010, 15:02

Denis3d писал(а):
Кульбит писал(а):Выложите код.По видимому вы не только кнопки в Update вынесли.


Весь код в первом посте.

Используйте syntax .В таком виде как есть он малочитабельный.
Кульбит
UNIт
 
Сообщения: 59
Зарегистрирован: 18 сен 2010, 01:52

Re: Контроль за скоростью и FixedUpdate ?

Сообщение Denis3d 29 сен 2010, 15:03

Zaicheg писал(а):
Denis3d писал(а):Все, понял ! Спасибо ! Не дошло сразу что речь идет только о кнопках :)
А что насчет скорости посоветуете ? как мне ее отловить что бы ограничение по скорости сделать ?

Rigidbody.velocity
Mathf.Clamp
Vector3.magnitude
В этих областях почитайте.


Спасибо ! ^:)^
Denis3d
UNец
 
Сообщения: 10
Зарегистрирован: 29 сен 2010, 12:56


Вернуться в Скрипты

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

Сейчас этот форум просматривают: Google [Bot] и гости: 8