@yraiv

Почему игрок улетает при ударе с уголком?

Когда игрок врезается в угол блока (сверху), то он подлетает достаточно высоко, как избавиться от этого?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Без скриншотов и кода могу лишь предположить, что вы перемещаете подчинённого физике персонажа либо телепортацией (модификация transform.position), либо управляете скоростью (Rigidbody.velocity). Оба способа рабочие, но порочные, так как первый вообще не работает на физику, а второй может сделать то, что случилось у вас.

Если говорить о причине, я на 95% уверен, что произошла следующая ситуация:
Ваш персонаж столкнулся с коллайдером и физика юнити начала отбрасывать его назад. Он же продолжает двигаться внутрь коллайдера, увеличивая силу, которая в итоге вырастет настолько, что персонажа буквально отшвырнёт. На ровной поверхности вы такой эффект не получите, а вот на углах легко просто потому, что точек сопротивления у коллайдера препятствия меньше.

Рекомендую обратить внимание на Rigidbody.AddForce с установкой ForceMode (или ForceMode2D для 2D). Вот небольшая подсказка:
6340b16fc6720621507048.jpeg

Если мой ответ не помог, напишите и приложите скриншот настроек и вида персонажа, а также код движения (включающий полную последовательность вызова)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы