Отключить инерцию в единстве, когда твердое тело поднимается - PullRequest
0 голосов
/ 28 октября 2018

Как видно из рисунка ниже, персонаж перемещается, когда я нажимаю влево и вправо на клавиатуре.Если я отпущу влево и вправо, персонаж перестанет двигаться, как ожидалось.

Я использую этот код для горизонтального перемещения:

rigidbody.AddForce(x,0,z)

Моя проблема в том, что когда я пытаюсь использовать этот код

rigidbody.AddForce(0,y,0)

для вертикального перемещения, персонажвзбирается на стену очень хорошо, но когда я отпускаю клавишу вверх или вниз, персонаж имеет инерцию .

Почему горизонтальное движение не инерционное, а вертикальное?

enter image description here


Обновление:

Я могу использовать

rig.MovePosition();

вместо AddForce, но вопросвсе еще их.Почему AddForce при горизонтальном перемещении не приводит к инерции, а AddForce для вертикального перемещения?

1 Ответ

0 голосов
/ 28 октября 2018

Я нахожу причину, в инспекторе символьных объектов> аниматор, я включаю "применить движение корня", здесь движение корня документ, он говорит:

Корневое преобразованиеявляется проекцией на плоскость Y Преобразования тела и вычисляется во время выполнения.

, поэтому я предполагаю, что «применить движение корня» будет работать только по оси xz,

так что движение по горизонтали не имеет инерции, это магия единства, когда я отключаю «применить движение корня», addforce для перемещения будет иметь инерцию

в моем случае, подъем - это движение по оси y, а в физике, addforce в большинстве случаев имеет инерцию, поэтому «применить движение корня» не работает, поэтому, если я хочу отключить инерцию, решение будет использовать solidbody # MovePosition вместо AddForce

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...