Как убрать инерцию в юнити

Unity как сбросить все ускорения с Rigit Body

пока что выхожу таким костылем :

Уточню: Если игра стоит на паузе, но есть место где мы вызываем ApplyForce а в другом месте мы сбрасываем все ускорения через

то по логике вещей, после выхода из паузы у объекта не будет ускорений
но по факту, юнити гдето под капотом, собирает все эти ускорения который были приложены через ApplyForce, и применяет их в первом FixedUpdate, в итоге чем больше были на паузе, тем больше накапливаются ускорения в нутри, и при выходе из паузы, объект просто выстреливает как из пушки

Я точно не знаю Как именно в Unity, но по логике надо узнать в одном кадре три компоненты приложенной силы и момента силы, а затем приложить их в апдейте физике с отрицательным знаком.

FDsagizi
> b.angularVelocity = Vector3.zero;
> b.velocity = Vector3.zero;
b.angularVelocity = (-1)*Vector3.zero;
b.velocity = (-1)*Vector3.zero;
ну короче точно такое же количество ускорения но в противоположную сторону тогда равнодействующая равна ноль

Rikk
> b.angularVelocity = (-1)*Vector3.zero;
> b.velocity = (-1)*Vector3.zero;

уточнил вопрос в главном посте ( это не про это )

сбросить «ускорения» нельзя. Т.к. они не хранятся. Хранятся скорости.
Если тело ускоряется, значит кто-то прикладывает силу, что-то типа «Constant Force».

> но есть место где мы вызываем ApplyForce
Несмотря на паузу?

rcsim
> сбросить «ускорения» нельзя. Т.к. они не хранятся. Хранятся скорости.

Ну да, речь идет про скорости которые есть в объекте
которые при b.velocity = Vector3.zero должны обнуляться

FDsagizi
> Ну да, речь идет про скорости которые есть в объекте
> которые при b.velocity = Vector3.zero должны обнуляться

Velocity ― скорость. Почему при корректировке скорости должны обнуляться ускорения?

Не понял ничего. Задам уточняющий вопрос: при паузе, «вы»
> но есть место где мы вызываем ApplyForce
зачем это делаете? Я бы не стал.

p.s. С юнити мало знаком, кажется там Physx, но нижеследующее действует и для других физдвигов:

При паузе (как правило) перестают обновлять физдвиг, но продолжают обновлять рендер.
И даже если не вызывать physicsWorld.update(), но вызывать rigidBody.ApplyForce(),
то это приведет к аккумулированию этих сил (там просто суммируются вектора) в самом теле, без всяких (имхо) Unitiy.

alexzzzz
> Velocity ― скорость. Почему при корректировке скорости должны обнуляться
> ускорения?
потому что
ускорение = [скорость2-скорость1] / [t2-t1]
a=dV/dt
скажем промежуток одна секунда 60кадров за секунду и на промежутке меняется скорость
значит можно скорости так подобрать что ускорение будет ноль

скажем сейчас скорость1=5 метров в секунду а через секунду скорость2=10метров в секунду
тогда ускорение=(10-5) /(одна секунда)= 5 метров за секунду в квадрате
но если скорость1=5 и скорость2=5 то ускорение=ноль хотя движение при скорости=5

Проблема уже обсуждалась и решалась AddForce(-velocity)

просто выдели объект и справа настройки отключи is gravity
или гравитация=0 is gravity=0
заодно включи is trigger управления программой(скриптами) и в программах не пиши формулы ускорения а пиши только формулы скорости
запилим супер на юнити как виртекса дергает в ванне током

foxes
> Проблема уже обсуждалась и решалась AddForce(-velocity)

Интересный вариант, надо попробовать

Если у вас объект ускоряется, то это значит что у вас в коде засела логическая ошибка и вы постоянно прикладываете к объекту силу. Я думаю, что просто вы слабо понимаете физику, отсюда и проблема.

Источник

Unity как сбросить все ускорения с Rigit Body

пока что выхожу таким костылем :

Уточню: Если игра стоит на паузе, но есть место где мы вызываем ApplyForce а в другом месте мы сбрасываем все ускорения через

то по логике вещей, после выхода из паузы у объекта не будет ускорений
но по факту, юнити гдето под капотом, собирает все эти ускорения который были приложены через ApplyForce, и применяет их в первом FixedUpdate, в итоге чем больше были на паузе, тем больше накапливаются ускорения в нутри, и при выходе из паузы, объект просто выстреливает как из пушки

Я точно не знаю Как именно в Unity, но по логике надо узнать в одном кадре три компоненты приложенной силы и момента силы, а затем приложить их в апдейте физике с отрицательным знаком.

FDsagizi
> b.angularVelocity = Vector3.zero;
> b.velocity = Vector3.zero;
b.angularVelocity = (-1)*Vector3.zero;
b.velocity = (-1)*Vector3.zero;
ну короче точно такое же количество ускорения но в противоположную сторону тогда равнодействующая равна ноль

Rikk
> b.angularVelocity = (-1)*Vector3.zero;
> b.velocity = (-1)*Vector3.zero;

уточнил вопрос в главном посте ( это не про это )

сбросить «ускорения» нельзя. Т.к. они не хранятся. Хранятся скорости.
Если тело ускоряется, значит кто-то прикладывает силу, что-то типа «Constant Force».

> но есть место где мы вызываем ApplyForce
Несмотря на паузу?

rcsim
> сбросить «ускорения» нельзя. Т.к. они не хранятся. Хранятся скорости.

Ну да, речь идет про скорости которые есть в объекте
которые при b.velocity = Vector3.zero должны обнуляться

FDsagizi
> Ну да, речь идет про скорости которые есть в объекте
> которые при b.velocity = Vector3.zero должны обнуляться

Velocity ― скорость. Почему при корректировке скорости должны обнуляться ускорения?

Не понял ничего. Задам уточняющий вопрос: при паузе, «вы»
> но есть место где мы вызываем ApplyForce
зачем это делаете? Я бы не стал.

p.s. С юнити мало знаком, кажется там Physx, но нижеследующее действует и для других физдвигов:

При паузе (как правило) перестают обновлять физдвиг, но продолжают обновлять рендер.
И даже если не вызывать physicsWorld.update(), но вызывать rigidBody.ApplyForce(),
то это приведет к аккумулированию этих сил (там просто суммируются вектора) в самом теле, без всяких (имхо) Unitiy.

alexzzzz
> Velocity ― скорость. Почему при корректировке скорости должны обнуляться
> ускорения?
потому что
ускорение = [скорость2-скорость1] / [t2-t1]
a=dV/dt
скажем промежуток одна секунда 60кадров за секунду и на промежутке меняется скорость
значит можно скорости так подобрать что ускорение будет ноль

скажем сейчас скорость1=5 метров в секунду а через секунду скорость2=10метров в секунду
тогда ускорение=(10-5) /(одна секунда)= 5 метров за секунду в квадрате
но если скорость1=5 и скорость2=5 то ускорение=ноль хотя движение при скорости=5

Проблема уже обсуждалась и решалась AddForce(-velocity)

просто выдели объект и справа настройки отключи is gravity
или гравитация=0 is gravity=0
заодно включи is trigger управления программой(скриптами) и в программах не пиши формулы ускорения а пиши только формулы скорости
запилим супер на юнити как виртекса дергает в ванне током

foxes
> Проблема уже обсуждалась и решалась AddForce(-velocity)

Интересный вариант, надо попробовать

Если у вас объект ускоряется, то это значит что у вас в коде засела логическая ошибка и вы постоянно прикладываете к объекту силу. Я думаю, что просто вы слабо понимаете физику, отсюда и проблема.

Источник

Момент инерции

Здравствуйте, как можно решить эту проблему:

Есть модель маховика, то есть это диск какого-либо диаметра и массы, он закреплён на корпусе модели. Когда мы даём вращение на маховик наша модель начинает вращаться, так как момент инерции диска передается на модель, сама модель начинает вращаться. Следовательно, мы может произвести ориентацию на определенный угол, используя систему обратной связи или остановить врещение, то есть стабилизировать.

Как можно рассчитать момент инерции диска маховика и передать его модели, на которой установлен маховик? И вообще, как можно задать момент объекту в Unity?

И может ли помочь эта формула?

P.s.
Вращение происходит только по одной оси, чаще всего вокруг z

Программисты играли в Rolling sky? Там шар крутиться это момент инерции?
Программисты играли в Rolling sky? Там шар крутиться это момент инерции?

Как убрать инерцию в юнити. Смотреть фото Как убрать инерцию в юнити. Смотреть картинку Как убрать инерцию в юнити. Картинка про Как убрать инерцию в юнити. Фото Как убрать инерцию в юнитиРеализация инерции через скрипт
День добрый, подскажите пожалуйста как сделать инерцию в юнити через скрипт, я пытался сделать.

Как убрать инерцию в юнити. Смотреть фото Как убрать инерцию в юнити. Смотреть картинку Как убрать инерцию в юнити. Картинка про Как убрать инерцию в юнити. Фото Как убрать инерцию в юнитиНайти момент инерции I и момент импульса земного шара относительно оси вращения
Найти момент инерции I и момент импульса земного шара относительно оси вращения.Масса Земли равна.

Определить момент силы торможения, если момент инерции маховика равен 1кг/м^2
маховик делал 10 оборотов в секунду,при торможении он остановился,сделав 30 оборотов от начало.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *