Моделирование трафика - большое количество объектов - PullRequest
0 голосов
/ 31 мая 2018

У меня есть CSV со следующими столбцами: time, carId, x, y.Я пишу сценарий, который будет считывать объекты CSV и машины вызова и просто обновлять их позиции с течением времени на основе данных.

В течение примерно 20 минут необходимо будет создать около 3500 автомобильных объектов.Хотя все они не будут участвовать в симуляции в один момент времени (как только автомобиль попадет в определенные точки моей дорожной сети, он исчезнет), но я хочу быть готовым к ситуации, когда сотни автомобильных объектов движутся черезСеть сразуЯ знаю, что в некоторых случаях лучше использовать setActive(false) для GameObjects, а не destroy(), и, возможно, это один из них.Что еще я должен учитывать при работе с таким количеством игровых объектов в Unity?

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Что еще следует учитывать при работе с таким количеством игровых объектов в Unity?

В большинстве случаев это действительно зависит от количества объектов или автомобилей, которые будут отображаться одновременно.время на экране.

Если машин всего несколько, используйте Объединение объектов для переработки объектов.

Вам также следует использовать LOD для оптимизации и уменьшения количествадля объекта отрисованы треугольники.


Если это симуляция движения с одновременным движением сотен автомобилей, то вам следует использовать Экземпляр GPU , который сейчасвстроенный в единство.Чтобы включить графический процессор, используйте стандартный шейдер и установите флажок «Включить создание графического процессора».

enter image description here

После включения его на материале вы можете использовать Graphics.DrawMeshInstanced для создания экземпляров объектов и MaterialPropertyBlock для изменениякак они выглядят.

0 голосов
/ 31 мая 2018

Звучит как прекрасная возможность использовать Object Pooling.Вы находитесь на правильном пути с использованием setActive.

Следуйте этому короткому руководству: https://unity3d.com/learn/tutorials/topics/scripting/object-pooling

Это должно уменьшить большую задержку, которую вы получите, создавая / уничтожая множество объектов.

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