как рассчитать силу для скорости (Rigidbody)?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

как рассчитать силу для скорости (Rigidbody)?

Сообщение vva 07 ноя 2013, 16:54

как рассчитать силу для скорости (Rigidbody)?
куб+колидер_бох(физ материала нет)+Rigidbody не терайне
желаемая скорость
pSpeed_R =10
двигаю
Синтаксис:
Используется csharp
if (pSpeed_R > 0)
{
        Vector3 targetVelocity = pTr.forward * pDirMove * pSpeed_R;
        Vector3 deltaVelocity = targetVelocity - pRB.velocity;
        pRB.AddForce(deltaVelocity * (pSpeed_R + pMass + pDrag), ForceMode.Force);
}
 

если масса 1 и драг 0 то pRB.velocity.magnitude примерно равно желаемой скорости
но если увеличить массу то скорость уменьшается а если и драг увеличить то скорость ещё меньше.
как рассчитать силу чтобы при любой массе и драге и что там ещё нужно учитывать скорость была желаемая?
какие показатели и как нужно учитывать?

вариант постоянного увеличения силы до желаемой скорости пока не интересует.
vva
UNITрон
 
Сообщения: 215
Зарегистрирован: 16 мар 2011, 22:22
Откуда: планета земля
Skype: vvavvavva3
  • Сайт

Re: как рассчитать силу для скорости (Rigidbody)?

Сообщение Respect1404 07 ноя 2013, 17:11

rigidbody.velocity = new Vector3(0,0,10);
Respect1404
UNITрон
 
Сообщения: 322
Зарегистрирован: 21 июл 2013, 02:35
Откуда: Россия, Калуга

Re: как рассчитать силу для скорости (Rigidbody)?

Сообщение vva 07 ноя 2013, 18:27

Respect1404 писал(а):rigidbody.velocity = new Vector3(0,0,10);

не. это не расчёт и не решает проблему.
при массе 100 и драге 10
pRB.velocity = pTr.forward * pDirMove * (pSpeed_R); //скорость меньше желаемой
а если
pRB.velocity = pTr.forward * pDirMove * (pSpeed_R + pMass + pDrag); //то в разы больше.

и в справке не рекомендовано устанавливать velocity .
и кажись не совсем правильно ведёт себя объект при установке.
не зря ведь сделана команда AddForce где многое расчитывается .
vva
UNITрон
 
Сообщения: 215
Зарегистрирован: 16 мар 2011, 22:22
Откуда: планета земля
Skype: vvavvavva3
  • Сайт

Re: как рассчитать силу для скорости (Rigidbody)?

Сообщение IDoNotExist 07 ноя 2013, 19:14

vva писал(а):pRB.velocity = pTr.forward * pDirMove * (pSpeed_R); //скорость меньше желаемой
а если
pRB.velocity = pTr.forward * pDirMove * (pSpeed_R + pMass + pDrag); //то в разы больше.

Естественно больше, вы же к той же самой скорости pMass и pDrag прибавляете.

vva писал(а):и в справке не рекомендовано устанавливать velocity .
и кажись не совсем правильно ведёт себя объект при установке.
не зря ведь сделана команда AddForce где многое расчитывается .


А еще в справке есть ForceMode.VelocityChange; Для AdddForce.
AddForce(new Vecto3.forward, ForceMode.VelocityChange);
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: как рассчитать силу для скорости (Rigidbody)?

Сообщение vva 07 ноя 2013, 19:40

пока интересует тока вариант ForceMode.Force
в справке есть формула mass*distance/time^2. но на скока она полезна для решения вопроса не понятно.
vva
UNITрон
 
Сообщения: 215
Зарегистрирован: 16 мар 2011, 22:22
Откуда: планета земля
Skype: vvavvavva3
  • Сайт

Re: как рассчитать силу для скорости (Rigidbody)?

Сообщение qwerty74 07 ноя 2013, 20:03

vva писал(а):пока интересует тока вариант ForceMode.Force
в справке есть формула mass*distance/time^2. но на скока она полезна для решения вопроса не понятно.


Ускорение (v-v0)/t, v0 текущая скорость, v необходимая, t=Time.fixedDeltaTime, если использовать ForceMode.Force , тогда сила получается (v-v0)/t*массу
qwerty74
UNITрон
 
Сообщения: 201
Зарегистрирован: 14 мар 2012, 14:03


Вернуться в Почемучка

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

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