Управление большим количеством rigidbody2D

Раздел, посвящённый самому важному - скорости.

Управление большим количеством rigidbody2D

Сообщение kiteg 19 сен 2017, 14:34

В сцене присутствует до 300 объектов rigidbody2D. Управление каждым из объектов осуществляется с помощью вычисления координат точек ближайшего пути до цели (ассет NavMesh2D) и создания вектора скорости до ближайшей точки каждый FixedUpdate() rb.velocity = new Vector2([ближайшая точка]);
Естественно я столкнулся с большими проблемами в производительности из-за:
1) Вычисление точек пути. Когда это происходит для 300 объектов одновременно (всем объектам отдана команда следовать куда-либо). Вроде как успешно решается при помощи корутины, которая распределяет вычисления по времени.
2) Если приказать всем следовать в одну точку начинается толкотня объектов и из-за обработки огромного кол-ва столкновений производительность падает.
3) Вектор скорости rb.velocity = new Vector2([ближайшая точка]); для каждого объекта задается каждый FixedUpdate(), что вероятно тоже влияет на производительность, но если постоянно не задавать вектор скорости то при попутном столкновении с другим динамическим объектом рассматриваемый объект промахнется мимо ближайшей точки пути -> следующая точа пути не будет задана, а вектор скорости перерасчитан не будет.

Во многих играх эти проблемы обошли или использовали какой-либо другой способ управления юнитами. Например Mount and blade или любая другая игра с массовыми сражениями.
Что тут можно предпринять?
kiteg
UNец
 
Сообщения: 22
Зарегистрирован: 28 авг 2017, 16:41

Re: Управление большим количеством rigidbody2D

Сообщение Tolking 19 сен 2017, 16:43

Осознать, что поиск пути не совместим с физикой в общем виде. И использовать/создать поиск пути который учитывает другие движущиеся агенты...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Управление большим количеством rigidbody2D

Сообщение kiteg 19 сен 2017, 18:30

Мда, печально. Есть какие-нибудь идеи или инфа на данную тему?
kiteg
UNец
 
Сообщения: 22
Зарегистрирован: 28 авг 2017, 16:41


Вернуться в Оптимизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4