Мобильные платформы
GameDev.ru / Мобильные платформы / Форум / Unity 2D игра. Оптимизация под мобильники

Unity 2D игра. Оптимизация под мобильники

Rustam789Постоялецwww24 июня 201615:29#0
Всем привет! Я начинающий разработчик, пишу игру (по сложности примерно как cut the rope) на android и ios. Хотел узнать, есть ли в юнити какие нибудь настройки для увеличения производительности именно на телефонах? Я использую плагин 2d toolkit, много читал про оптимизацию 2д игр, не использую скейл объектов, пости не использую методы instantiate и destroy. Но игра весит неоправданно много и лагает немного, хотя в эдиторе фпс под 2500. Может как то можно пожать ассеты или отключить ненужные функции? В коде ничего сложного нет,  единственное, передвижение по X идет в FixedUpdate() методом Translate(); И при этом Update() тоже присутствует. Может я сделал слишком большие текстурные атласы(2к на 2к) и изза того что они в памяти, виснет?
И еще пару вопросов:
Дорога ли функция смены гаммы цветов спрайта в рантайме?
Какие еще способы сделать анимацию в 2д, кроме спрайтовой? (например анимацию заморозки экрана)

Буду очень благодарен за советы)

ChupakaberПостоялецwww24 июня 201615:54#1
чаще всего нагрузку помоему создает интерфейс, как реализован?Rustam789
> Какие еще способы сделать анимацию в 2д, кроме спрайтовой? (например анимацию
> заморозки экрана)
шейдером, процедурная. но большинство процедурной может ещё большую нагрузку создать. простая процедурная на основе выборки из текстур может быть более менее оптимальна и прилично выглядеть
Rustam789Постоялецwww24 июня 201616:34#2
Chupakaber
UI в геймплейной сцене почти отсутствует, только 3 кнопки для эффектов типо суперспособностей, он сделаны опять таки через плагин, там есть свой UI. Канвасы вообще не используются. Еще проблема, я раньше, без плагина текстуры в ргб24 сжимал, а в плагине либо труколор, либо компрессд. Но без плагина не смогу никак(
Уверен, если бы писал на жаве, на фреймворке каком нибудь, все бы летало на любых телефонах)) но есть же много игр на юнити, которые хоть и весят в 1.5 раза больше, чем могли бы, но не лагают совсем
itxПостоялецwww26 июня 201612:54#3
Как вариант - посмотреть что у тебя с new в циклах update / ongui / ... , возможно ты создаешь много новых обьектов и GC тормозит игру когда чистит.
Но вообще unity по определению иногда подлагивает
CasDevПостоялецwww4 апр. 201812:53#4
Rustam789
> Дорога ли функция смены гаммы цветов спрайта в рантайме?

Чой это такое, можно на пальцах?

> единственное, передвижение по X идет в FixedUpdate() методом Translate(); И при этом Update() тоже присутствует

Ну а что нам разработчики от Unity советуют?
В Fixed считается только физика. В Update все остальное, включая обработку клавиш и timers.

Кстати да. В игре от физики translate неправильно используешь (двигать надо применяя force). Вот это может быть проблемой, у меня такое было в старой игре от 2011 года. Если двигаешь translate, физика переинициализируется (которая "статическая") вся каждый кадр и все "фризится". Но это сразу неправильный подход к физическим играм.

> Может я сделал слишком большие текстурные атласы(2к на 2к) и изза того что они
> в памяти, виснет?

Разве что тестить на доисторическом железе образца 2012 года. В остальных атласы по 2к должны поддерживаться.
Единственное, может быть у тебя все в память не влезает и сводиться, но тогда фризы были бы всегда.

Здесь мне кажется ничего из вышеперечисленного существенный вклад дать не может.

Скорее всего, либо у тебя ДОФИГА объектов на экране, и поэтому всё на телефоне медленно.
Либо проблема в другом месте.

Правка: 4 апр. 2018 12:59

LukaПостоялецwww4 апр. 201814:23#5
А смотрели сколько Draw Calls. После сборки в логе есть список какие ресурсы загружены и сколько они занимают.

Правка: 4 апр. 2018 14:31

DimmergПостоялецwww10 апр. 201811:15#6
Наверное стоит начать с профайлера, там довольно много информации можно получить. Причем профилировать стоит сразу на девайсе, минуя редактор.
https://docs.unity3d.com/ru/current/Manual/Profiler.html

/ Форум / Мобильные платформы / Общее

2001—2018 © GameDev.ru — Разработка игр