Понедельник, 07 Октября 2024, 02:01

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
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 скрытыми, а когда надо показываю. Такая система работает и не лагает,

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


ДА


COLD DEPTH Steam
PUSS!
COLD DEPTH
  • Страница 1 из 1
  • 1
Поиск:

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