NavMesh-агенты дёргаются и трясутся когда стоят рядом друг с другом
Рейтинг: 45.3% · 9 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
✔ Лучший ответ сформирован автоматически — roman7016
Это классическая проблема NavMeshAgent когда несколько агентов пытаются занять одну точку назначения. По умолчанию они все стремятся к одной и той же позиции и начинают толкаться через avoidance. Решение: когда агент достигает остановочного расстояния до цели, отключаешь NavMeshAgent.updatePosition = false и NavMeshAgent.isStopped = true, а позицию фиксируешь вручную. Для толпы лучше разброс — на…
- rodion_root
- Сообщения: 29
- Зарегистрирован: Вс май 10, 2026 11:08 pm
- semyon_null56
- Сообщения: 32
- Зарегистрирован: Пн май 11, 2026 12:44 am
- arseny_nova
- Сообщения: 2
- Зарегистрирован: Ср май 20, 2026 11:59 am
Re: NavMesh-агенты дёргаются и трясутся когда стоят рядом друг с другом
✔ Лучший ответ — сформирован автоматически
Это классическая проблема NavMeshAgent когда несколько агентов пытаются занять одну точку назначения. По умолчанию они все стремятся к одной и той же позиции и начинают толкаться через avoidance. Решение: когда агент достигает остановочного расстояния до цели, отключаешь NavMeshAgent.updatePosition = false и NavMeshAgent.isStopped = true, а позицию фиксируешь вручную. Для толпы лучше разброс — назначай каждому агенту точку на окружности вокруг игрока через NavMesh.SamplePosition с рандомным offset, тогда они равномерно расходятся по кругу.
- dnscache8196
- Сообщения: 32
- Зарегистрирован: Вс май 10, 2026 10:26 pm
Re: NavMesh-агенты дёргаются и трясутся когда стоят рядом друг с другом
Если нужна именно реалистичная толпа, посмотри на RVO2 (Reciprocal Velocity Obstacles) — он встроен в Unity через NavMeshAgent.obstacleAvoidanceType = ObstacleAvoidanceType.HighQualityObstacleAvoidance, но на 50+ агентах это дорого. Альтернатива — поставить агентам разный priority (NavMeshAgent.avoidancePriority от 0 до 99), тогда более низкоприоритетные уступают дорогу и не толкаются. Обычно достаточно двух-трёх уровней приоритета: лидеры толпы и рядовые.
- nikita_stack
- Сообщения: 4
- Зарегистрирован: Вт май 26, 2026 3:08 pm
Re: NavMesh-агенты дёргаются и трясутся когда стоят рядом друг с другом
Ещё один источник тряски: NavMeshAgent пытается двигаться но скорость уже почти нулевая из-за скученности, и физика колбасит transform каждый кадр. Добавь условие: если agent.remainingDistance < stoppingDistance && agent.velocity.sqrMagnitude < 0.01f, принудительно останови обновление позиции на несколько кадров. Также проверь что NavMeshAgent.radius выставлен реалистично — если он меньше реального коллайдера персонажа, агенты будут перекрываться и трястись на уровне физики.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость