Воскресенье, 22 Сентября 2019, 06:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Canvas В Unity (Как заставить эту шнягу не лагать)
Canvas В Unity
DeeSaaДата: Среда, 10 Июля 2019, 16:58 | Сообщение # 1
был не раз
Сейчас нет на сайте
Сначала делал дефолтно: делал нужный префаб канваса и когда нужно, его инстансил. В эти моменты происходил пик лагов. Далее решил все канвасы заранее иметь на сцене в неактивном скрытом виде, и при нужде ставить их setActive(true). В эти моменты ТОЖЕ проиходил пик лагов. Уже не знаю, что делать. Менять Taget Display(для того, ненужные канвасы не отображались) или загонять их за пределы Plane Distance, чтобы их было видно или не видно.
Уже которую игру начинаю делать, а лагать все безбожно начинает именно на моменте с канвасами и ui.
Какие операции с UI элементами заставляют весь канвас пересчитываться?
vampir0305Дата: Среда, 10 Июля 2019, 17:21 | Сообщение # 2
Unity C# Programmer
Сейчас нет на сайте
Цитата DeeSaa ()
Как заставить эту шнягу не лагать

Не создавать больше 1 канваса на сцене.


Новая игра-головоломка. Выходит в стиме.
DeeSaaДата: Среда, 10 Июля 2019, 17:39 | Сообщение # 3
был не раз
Сейчас нет на сайте
Я что-то читал, что нужно для оптимизации создавать два канваса: один динамический, второй статический(в котором с элементами не происходит нинках изменений). Это правда?
Любое изменение элемента канваса ведет к пересчету и batch'у всего канваса заново?
То есть если в канвасе все статично, но есть всего один text элемент, который меняется каждый фрейм, то и все статичные элементы будут также постоянно пересчитываться?
djwirtuozДата: Среда, 10 Июля 2019, 18:31 | Сообщение # 4
частый гость
Сейчас нет на сайте
Делаю элементы Canvas'a скрытыми, а когда надо показываю. Такая система работает и не лагает, тестировал на основном компе, ноуте и двух android смартфонах
А вот старый GUI подлагивал.
И как сильно лагает? на сколько проседает FPS?


Старые и текущие проекты
drcrackДата: Среда, 10 Июля 2019, 22:06 | Сообщение # 5
старожил
Сейчас нет на сайте
Цитата
Не создавать больше 1 канваса на сцене.

ну бред же)
канвасов надо создавать несколько, так чтобы исключить обновление всего канваса при изменении элементов
например если есть чат — то это отдельный канвас
а рядом например список игроков — тоже отдельный
потому что они обновляются независимо друг от друга
у юнити где-то была статья на тему оптимизации UI

Цитата
Делаю элементы Canvas'a скрытыми, а когда надо показываю. Такая система работает и не лагает,

у меня тоже ниче не лагает, хотя куча канвасов и тыща элементов внутри, и каждый неймплейт над игроком/нпс — тоже канвас
так что даже не знаю чем тсу помочь


Dynamic GPU Occlusion Culling for Unity
seamanДата: Четверг, 11 Июля 2019, 19:19 | Сообщение # 6
старожил
Сейчас нет на сайте
Единственное, что с канвасами желательно делать - убирать галочку "Raycast target" у всех элементов, с которыми не будет взаимодействия. Несколько ускоряет канвас. Но вообще - весьма часто полным полно канвасов, в том числе и в мировых координатах (над объектами) и ничего не тормозит.
DeeSaaДата: Четверг, 11 Июля 2019, 20:37 | Сообщение # 7
был не раз
Сейчас нет на сайте
Любое изменение элементов канваса вызывает перерасчет всего канваса? Если, например, добывать на кнопки animator с эффектом появления, то каждый фрейм весь канвас будет пересчитываться? Включая все статичные элементы?
AndrewNovakДата: Четверг, 11 Июля 2019, 21:04 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Цитата DeeSaa ()
Любое изменение элементов канваса вызывает перерасчет всего канваса? Если, например, добывать на кнопки animator с эффектом появления, то каждый фрейм весь канвас будет пересчитываться? Включая все статичные элементы?


ДА


PUSS! COLD OUT
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Canvas В Unity (Как заставить эту шнягу не лагать)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг