Физика Rigidbody в Unity дёргается и трясётся как исправить
Рейтинг: 43.6% · 6 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- jscode1641
- Сообщения: 32
- Зарегистрирован: Ср май 13, 2026 9:49 am
Физика Rigidbody в Unity дёргается и трясётся как исправить
Делаю платформер от третьего лица на Unity 2021.3. Персонаж двигается через Rigidbody.MovePosition в FixedUpdate. Проблема — на некоторых платформах и углах персонаж начинает мелко дрожать или вдруг отпрыгивает в сторону. Коллайдеры простые — CapsuleCollider на персонаже, BoxCollider на платформах. Физический материал с нулевым трением стоит. Что это может быть?
✔ Лучший ответ выбран автором и совпадает с автоматическим подбором — ruslan_pro
Вот развёрнутый ответ по причинам и решениям. Дрожание Rigidbody бывает нескольких видов. Первый вид — визуальное дрожание при правильной физике: лечится Interpolation = Interpolate в настройках Rigidbody. Второй вид — физическое дрожание когда объект застрял между двумя коллайдерами: лечится увеличением solver iterations (Edit > Project Settings > Physics > Default Solver Iterations, попробуй 12…
Re: Физика Rigidbody в Unity дёргается и трясётся как исправить
Классическая проблема — несинхронизация физики и рендера. Rigidbody.MovePosition нужно вызывать строго в FixedUpdate, а вот камеру и всё визуальное обновлять в LateUpdate или через интерполяцию. Проверь что у тебя в Rigidbody включена Interpolation = Interpolate — без этого визуально будет дрожать даже если физика считается правильно.
Re: Физика Rigidbody в Unity дёргается и трясётся как исправить
Дрожание на углах платформ часто вызвано тем что CapsuleCollider цепляется за края BoxCollider-ов. Это известная проблема Unity-физики. Решения: 1) добавь PhysicsMaterial с небольшим Bounce = 0 и Friction = 0 на персонажа, 2) используй скруглённые коллайдеры на платформах (или добавляй небольшой chamfer), 3) переключись на CharacterController вместо Rigidbody — он специально сделан для персонажей и обрабатывает ступеньки и углы нормально.
- ruslan_pro
- Сообщения: 24
- Зарегистрирован: Чт май 14, 2026 3:04 am
Re: Физика Rigidbody в Unity дёргается и трясётся как исправить
✔ Лучший ответ — выбран автором и совпадает с авто-подбором
Вот развёрнутый ответ по причинам и решениям. Дрожание Rigidbody бывает нескольких видов. Первый вид — визуальное дрожание при правильной физике: лечится Interpolation = Interpolate в настройках Rigidbody. Второй вид — физическое дрожание когда объект застрял между двумя коллайдерами: лечится увеличением solver iterations (Edit > Project Settings > Physics > Default Solver Iterations, попробуй 12-16 вместо 6). Третий вид — дрожание на наклонных поверхностях из-за конфликта гравитации и collision response: лечится либо PhysicsMaterial с Friction 0 и вручную реализованным трением в скрипте, либо ограничением вращения (Constraints > Freeze Rotation XZ). Четвёртый вид — рывки при MovePosition с большими значениями: метод MovePosition телепортирует физически объект в точку, интерполируя за один FixedUpdate, если дистанция слишком большая — будет рывок. Ограничь максимальный шаг движения в один FixedUpdate значением Time.fixedDeltaTime * maxSpeed.
Re: Физика Rigidbody в Unity дёргается и трясётся как исправить
Ещё один неочевидный момент — Floor Snap. Если персонаж идёт по ровной поверхности но физика каждый кадр чуть толкает его вниз и коллайдер отвечает — это суммируется в вибрацию. Добавь небольшой snap to ground: кастуй луч вниз и если земля ближе чем 0.1 юнита — принудительно зафиксируй Y позицию. Многие это решают через IsGrounded + обнуление вертикальной скорости.
- dnsnova7072
- Сообщения: 2
- Зарегистрирован: Пн май 18, 2026 3:35 pm
Re: Физика Rigidbody в Unity дёргается и трясётся как исправить
Если всё остальное не помогло — попробуй заменить CapsuleCollider на два SphereCollider (один сверху, один снизу) как это делают в некоторых AAA проектах. Это устраняет проблему с краями коллайдера зацепляющего рёбра меша. Немного геморройнее в настройке но решает edge-catching раз и навсегда.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
-
- TypeScript ошибка Type string is not assignable to type never как исправить
6 ответов · 15 просмотров
-
-
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость