Здравствуйте,
посмотрел в интернете
видео урок (трафик ~45МБ), в котором для большого числа объектов рекомендуют применять заранее созданный массив напичканный определенным количеством объектов.
Постараюсь обрисовать (как и в видео) на примере пуль в игре:
Было:
Нажимаем пробел -> создается объект пули и помещается в массив (создается через new())
В цикле игры пули двигаются, когда уходят за экран, их удаляют с экрана обнуляют переменную в массиве и вызывают Garbage Collector
Стало:
Создается массив с заранее забитым числом объектов пуль (также через new()), при нажатии на пробел извлекается доступный элемент массива и помещается на сцену, после ухода за экран он возвращается в этот же массив (на ближайшее свободное место)
Автор уверяет, что этот метод снижает нагрузку на GPU (именно графический процессор) и говорит что именно так и следует поступать с большим числом элементов.
Объясните, пожалуйста, в чем разница создания элементов при необходимости и создании заранее некоторого числа объектов? Ведь они тоже память занимают? Как посчитать разницу в том и другом алгоритме (проверял на 1000 пуль результат нагрузки на процессор тот же)? Прав ли автор или это очередной велосипед для тех кто не умеет правильно Garb.Collector использовать?