Как работает AddForce?

Физика в Unity

Как работает AddForce?

Сообщение VitaliyCh 15 июн 2011, 11:29

Здравствуйте уважаемые форумчане!

У меня такая проблема. На ровной поверхности толкаю сферу например так rigidbody.AddForce (0,0,500,ForceMode.Force). Если потом запускаю этот же метод с отрицательным параметром -500 шар начинает катиться в другую сторону, хотя я так понимаю должен остановиться. Может кто подскажет в чем причина. И еще вопрос можно ли как-нибудь получить значения текущей силы направленной на объект?

Спасибо!
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Как работает AddForce?

Сообщение Order 15 июн 2011, 11:34

Я думаю надо импульс давать а не форс.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Как работает AddForce?

Сообщение Zaicheg 15 июн 2011, 11:35

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

Re: Как работает AddForce?

Сообщение VitaliyCh 15 июн 2011, 12:01

Zaicheg писал(а):Ставя знак "-" перед значением "500" вы не делаете силу... эмм... отрицательной, а меняете направление на противоположное. Не ясно, почему сфера должна быть неподвижна, если вы прикладываете к ней силу.


То есть если я в AddForce укажу 0 по Z оси шар должен остановиться?
Я так понимаю, что если последовательно вызвать три раза AddForce c параметром по Z = 500, то в результате сила должна составить 1500 или не так?
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Как работает AddForce?

Сообщение VitaliyCh 15 июн 2011, 12:07

Amper писал(а):Один шизик чувак писал пример тебе нужный в своем блоге, но чувака тут занубили, закидали говном аплодисментами, сказали что все что он пишет нафиг не нужно, по этому ссылку боюсь ставить, забанят еще не дай бог.


Ну отправьте в личку.
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Как работает AddForce?

Сообщение Order 15 июн 2011, 12:10

Force Add a continuous force to the rigidbody, using its mass.
Acceleration Add a continuous acceleration to the rigidbody, ignoring its mass.
Impulse Add an instant force impulse to the rigidbody, using its mass.
VelocityChange Add an instant velocity change to the rigidbody, ignoring its mass.

Делай модификатор Impulse. это толчок телу силой, толкнул вперед, толкнул назад.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Как работает AddForce?

Сообщение VitaliyCh 15 июн 2011, 12:18

Order писал(а):Force Add a continuous force to the rigidbody, using its mass.
Acceleration Add a continuous acceleration to the rigidbody, ignoring its mass.
Impulse Add an instant force impulse to the rigidbody, using its mass.
VelocityChange Add an instant velocity change to the rigidbody, ignoring its mass.

Делай модификатор Impulse. это толчок телу силой, толкнул вперед, толкнул назад.


Попробовал импульс, при этом модификаторе я так понимаю сила должна со временем затухать, т.е. шар должен через какое-то время остановиться? У меня катится непрерывно.
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Как работает AddForce?

Сообщение Order 15 июн 2011, 12:21

Я не знаю чего вы ходите добиться. Если нужно затухание скорости, сделайте массу больше и сопротивление среды телу. Если все время прилагать импульс будет непрерывно катиться.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Как работает AddForce?

Сообщение VitaliyCh 15 июн 2011, 12:34

Order писал(а):Я не знаю чего вы ходите добиться. Если нужно затухание скорости, сделайте массу больше и сопротивление среды телу. Если все время прилагать импульс будет непрерывно катиться.


В идеале мне как раз и нужно затухание скорости и полная остановка конечно при учете что поверхность ровно горизонтальная. Массу я так понимаю нет смысла менять, так как можно тот же эффект регулировать силой. А как устанавливается сопротивление среды телу? Может в том у меня и проблема, так как импульс прилагается один раз.
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Как работает AddForce?

Сообщение waruiyume 15 июн 2011, 12:46

А как устанавливается сопротивление среды телу?

rigidbody.drag
Остановит и без драга:
Синтаксис:
Используется javascript
rigidbody.AddForce(-rigidbody.velocity,ForceMode.VelocityChange);
rigidbody.AddTorque(-rigidbody.angularVelocity,ForceMode.VelocityChange);
 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как работает AddForce?

Сообщение VitaliyCh 15 июн 2011, 13:17

Всем большое спасибо!!!! Drag помог.
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Как работает AddForce?

Сообщение Zaicheg 15 июн 2011, 16:29

То есть если я в AddForce укажу 0 по Z оси шар должен остановиться?

Через какое-то время, за счёт силы трения и прочего. Для этого конечно надо корректно ригидбоди настроить: физический материал, drag, mass и прочее.
Только проще вообще не указывать AddForce, ведь AddForce(0, 0, 0) — это отсутствие приложения силы.

Я так понимаю, что если последовательно вызвать три раза AddForce c параметром по Z = 500, то в результате сила должна составить 1500 или не так?

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


Вернуться в PhysX

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

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