Я делаю полноценную 2D-игру с полным NGUI для Android.
Но в игре есть некоторые проблемы с производительностью.
Я использовал «Глубокое профилирование» в редакторе единиц, обнаружил, что в скрипте есть задержка.
Самая большая часть времени занимает «UIPanel.LateUpdate ()».
Следуя моей архитектуре, используя наименьшее количество UIPanels, потому что по причине производительности у каждого UIPanel есть свой собственный пакет рендеринга.
'Deep Profiler' показывает мне, что его количество пакетов рендеринга составляет 31 , а UIPanel.LateUpdate time is 4.7ms
Но мое найденное решение говорит мне: «Не меняйте преобразование UIWidget под UIPanel и установите UIPanel« статическим »: это может уменьшить UIPanel.LateUpdate ().
Таким образом, я изменил каждый подвижный 2d-объект, чтобы он имел собственную UIPanel и сделал их статичными (конечно, не изменяйте преобразование дочернего виджета).
В этом случае, профилировщик показывает 1.7ms для UIPanel.LateUpdate (), но пакет рендеринга увеличен до 45 .
Я понял, что это компромиссное состояние.
Итак, вопрос в том, что:
Какое значение имеет сбалансированная архитектура для оптимизированной производительности между количеством UIPanel (drawcall) и временем, затрачиваемым на UIPanel.LateUpdate ()?
Я не могу сделать стандарт для этого.
Я знаю, что ответом не может быть конкретное число или одно слово, но я хочу ноу-хау.
например : 45 раздач в порядке.Вы можете сделать панели до 100 колокольчиков.Или, абсолютно в любое время, уменьшение количества обращений к вызову важнее, чем UIPanel.LateUpdate, потому что эта функция занимает не так много времени, как показывает профилировщик в реальном телефоне.Или существует способ привязки глубины одной панели к одной партии.или иначе.
Пожалуйста, помогите мне.или приветствуем обсуждение!