Как стать автором
Обновить

Комментарии 11

Избегайте пустых элементов, которые служат лишь для для организации структуры (не используйте элементы как названия «папок» в иерархии документа).

Чем это обосновано?
Я часто создаю для текстов отдельную панель и ставлю её в самых низ в иерархии конкретного родителя. Где-то читал, что отрисовка в UI зависит от порядка элементов — кто выше, тот первый. И поэтому не стоит чередовать Image — Text — Image — Text. Лучше по возможности все текста переместить вниз.
Чем это обосновано?

Каждый элемент UI учитывается при перестроении холста, чем больше элементов в холсте тем больше будет выполнено расчетов.

Я часто создаю для текстов отдельную панель и ставлю её в самых низ в иерархии конкретного родителя. Где-то читал, что отрисовка в UI зависит от порядка элементов — кто выше, тот первый. И поэтому не стоит чередовать Image — Text — Image — Text. Лучше по возможности все текста переместить вниз.

Действительно, отрисовка согласно иерархии происходит сверху-вниз и эта рекомендация относится к батчингу, но есть ряд особенностей. Если не происходит перекрытия текста и изображения, то текст и так будет отрисован за один проход, да же если в иерархия будет выглядеть как текст — изображение — текст. И в то же время, если у вас текстовые компоненты (не TextMeshPro) будет иметь разные шрифты, они не будут батчиться и будут отрисованы в несколько проходов.
Например,
Текст(Шрифт 1) — текст(Шрифт 1) — текст(Шрифт 1) будут отрисованы за один проход.
Текст(Шрифт 1) — текст(Шрифт 2) — текст(Шрифт 1) если нет взаимных перекрытий габаритных контейнеров, будут отрисованы за два прохода.
Текст(Шрифт 1) — текст(Шрифт 2) — текст(Шрифт 1) если есть взаимных перекрытий габаритных контейнеров, будут отрисованы за три прохода.
Кстати, если создаешь атлас спрайтов, то в билд попадает только он, а спрайты из которых ты собрал атлас нет. Но есть вроде исключение, когда исходные спрайты лежат в Resources.
Все верно. Из папок Resources все попадает в билд.
В копилку по Unity UI оптимизациям, примерно с 23 минуты, подробные таймкоды в комментах:
Unite Europe 2017 - Squeezing Unity: Tips for raising performance

Каждый абзац насыщен информацией, всё по делу, без воды, без лажи. Отличная статья, спасибо!

Спасибо!

Спасибо за статью. Пару вопросов:
1) Есть ли смысл использовать canvasgroup для каждого отдельного окна в игре?
2) Можно ли вместо создания атласа, просто указать «Packing Tag» у спрайта?
Спасибо!
1) Если вы используете свойства компонента CanvasGroup, тогда есть смысл его использовать, если не используете, то нет смысла вешать лишний компонент на объект.
2) Packing Tag, применялся в старых версиях юнити, на данный момент данный вариант является устаревшим и не рекомендуется к использованию. docs.unity3d.com/Manual/SpritePacker.html
Имеет ли смысл использовать unity для НЕигровых приложений, чтобы сэкономить на кросплатформенности? Какие плюсы и минусы могут быть?

Смотря какие приложения и какие платформы. Минусы: вес исполняемых файлов, не такой богатый выбор элементов управления, скорость запуска. Плюсы: кроссплатформенность, 3d, ugui, простота, c#

Зарегистрируйтесь на Хабре, чтобы оставить комментарий