Является ли добавление большого количества игровых объектов GameObject в сцену (не визуализируемых) неэффективным для производительности? [Единство]

Я использую Unity 4.6 для разработки 2D-игры. Я хочу знать, оказывает ли большое количество игровых объектов в сцене (вне поля зрения камеры) значительное влияние на производительность. Например, эффективно ли создавать прокручиваемый список имен (например, 1000 из них)? (каждый из них является GameObject и имеет текст, кнопку и т. д.) Я маскирую их в указанной области (например, 10 из них видны одновременно).

Заранее спасибо!


person Sean Ed-Man    schedule 28.12.2014    source источник


Ответы (1)


Зависит от того, имеют ли объекты видимые компоненты. Если они это сделают, движок нарисует их, даже если они «за кадром». Игровой объект сам по себе имеет довольно легкую нагрузку - игра, основанная на тайлах, может иметь тысячи в памяти. Вам нужно переключить видимость спрайтов, если вы планируете рисовать большое количество спрайтов вне камеры. Здесь в дело вступает SpriteManager. Он проверит, находится ли спрайт в прямоугольнике камеры, и отключит спрайты, которые там не находятся. Здесь есть полуофициальный пример, который хорош, хотя и немного сложен:

http://wiki.unity3d.com/index.php?title=SpriteManager

person ChargerIIC    schedule 29.12.2014
comment
Управляются ли с этим встроенные 2D-функции Unity (например, SpriteRenderer)? Или мне нужно отключить SpriteRenderer, как только он выйдет за пределы камеры? Как насчет элементов пользовательского интерфейса в новой системе графического интерфейса, недавно добавленной в Unity 4.6? - person Sean Ed-Man; 31.12.2014
comment
В настоящее время движок будет продолжать рисовать спрайты вне камеры. Элементы пользовательского интерфейса обычно определяются в поле зрения камеры, поэтому это не внесло изменений. Я не знаю, планирует ли Unity изменить это поведение — в то время как многие 3D-игры выигрывают от отрисовки объектов камеры, игры, основанные на 2D-тайлах, этого не делают. Может в единстве 5.0+ - person ChargerIIC; 31.12.2014