Раскачивание предметов

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

Раскачивание предметов

Сообщение WebWolf 08 фев 2010, 22:11

К примеру у меня есть куб... я хочу что бы во время ходьбы его раскачивало к примеру вперед назад... не прибегая к анимации.. и ещё как сделать что бы это код работал плавно
transform.localPosition.x += -1.2;
transform.localPosition.y += 0.3;

т.к мне надо что бы объект который перемещается до заданной координаты передвигался плавно... а не мгновенно перемещался.
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ

Re: Раскачивание предметов

Сообщение Zaicheg 08 фев 2010, 22:47

Например.
Даём импульс через что-нибудь вроде rigidoby.AddForce (ForceMode не забудь выбрать правильный).
При достижении кординаты — обнуляем (или снижаем для плавности) скорость (rigidbody.velocity), даём обратный импульс.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Раскачивание предметов

Сообщение gnoblin 08 фев 2010, 23:00

Для плавного перемещения можно попользовать Vector3.Lerp.

Раскачивание вперед назад можно сделать как-нибудь так:

Код: Выделить всё
float counter = 0;
float speed = 1f;
float k = 1f;
Vector3 actual_position,start_pos, end_pos;
...
//правда, не очень круто, потому что го будет замедляться по мере приближения к цели
actual_position = Vector3.Lerp(start_pos, end_pos, 0.1f);
transform.position = new Vector3(actual_position.x, actual_position.y, actual_position.z + k*Mathf.Sin(counter));
counter += Time.deltaTime*speed;
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Раскачивание предметов

Сообщение WebWolf 08 фев 2010, 23:19

Zaicheg писал(а):Например.
Даём импульс через что-нибудь вроде rigidoby.AddForce (ForceMode не забудь выбрать правильный).
При достижении кординаты — обнуляем (или снижаем для плавности) скорость (rigidbody.velocity), даём обратный импульс.

А можно примерчик мне надо оружие раскачать при ходьбе и сделать плавное прицеливание...
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ

Re: Раскачивание предметов

Сообщение WebWolf 09 фев 2010, 02:13

WebWolf писал(а):
Zaicheg писал(а):Например.
Даём импульс через что-нибудь вроде rigidoby.AddForce (ForceMode не забудь выбрать правильный).
При достижении кординаты — обнуляем (или снижаем для плавности) скорость (rigidbody.velocity), даём обратный импульс.

А можно примерчик мне надо оружие раскачать при ходьбе и сделать плавное прицеливание...

Чет нифига не получается(( :(
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ

Re: Раскачивание предметов

Сообщение Paul Siberdt 09 фев 2010, 10:00

Думаю, если с анимацией не хочется связываться, простенькое решение - синусы.

factorA * Mathf.Sin (Time.time * factorB ) даст постоянную синусоиду с длиной волны factorB и амплитудой factorA
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Раскачивание предметов

Сообщение WebWolf 09 фев 2010, 21:06

Paul Siberdt писал(а):Думаю, если с анимацией не хочется связываться, простенькое решение - синусы.

factorA * Mathf.Sin (Time.time * factorB ) даст постоянную синусоиду с длиной волны factorB и амплитудой factorA


Ещё бы знать как это прикрутить исходя из кода что я дал)) я просто в одном месте прибавлял а в другом отнимал)
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ

Re: Раскачивание предметов

Сообщение WebWolf 11 фев 2010, 14:19

http://forum.unity3d.com/viewtopic.php?p=267766#267766 вот парень какой то сделал у него в демке оружие раскачивается(( хз как мне заставить реагировать
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ


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

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

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