TGViewer
SpellSinger - разработчик игр на Unity SpellSinger - разработчик игр на Unity @spellsingergames · 548 subscribers
Post #43 2.05K
Оптимизации в Бурить-Копать!

Поделюсь списком оптимизаций, которые я сделал в нашей игре. После этих оптимизаций FPS на слабом тестовом устройстве поднялся с нестабильных 20-30 до стабильных 40+.

По традиции, рассказываю только то, что мне было не очевидно ранее, то есть делюсь свежайшим опытом.

1) Разделил UI на несколько отдельных Canvas'ов. Смысл был в том, чтобы вынести кликабельные элементы (кнопки) в отдельный Canvas, и только на него повесить Graphic Raycaster, а так же в том, чтобы отделить UI-элементы, которые перерисовываются часто, от тех, которые перерисовываются редко.

2) Снял галочку Raycast Target на некликабельных элементах, но только на тех Canvas, на которых остался Graphic Raycaster. У TMP Text снял все лишние галочки типа Rich Text, а так же постарался избавиться от функции Auto Size, она очень прожорливая.

3) В компоненте камеры Physics 2D Raycaster выбрал только один слой, на который добавил только те объекты мира, по которым можно кликнуть (у меня их всего 2).

4) В CinemachineBrain выбрал Update Method - Smart Update (по умолчанию у меня было Fixed Update, и оно больше тормозило).

5) Отключил все неиспользуемые Unity пакеты. Не уверен, что это повлияло на производительность, но точно повлияло на размер билда.

6) Постарался избавиться от использования LINQ и сократил выделение памяти (создание новых инстансов объектов) в самой высоконагруженной части кода - в генераторе мира.

7) Начал использовать батчинг при работе с Tilemap. Раньше я задавал каждый тайл отдельно через Tilemap.SetTile, теперь я генерирую всю строчку целиком, и вызываю Tilemap.SetTiles. Это дало очень большой прирост производительности.

8) Разобрался со взрывом динамита. Там, кроме всего прочего, была вспышка, сделанная с помощью Particle System. Проблема была в том, что во время первого взрыва игра сильно подтормаживала, а на последующих все было норм. Я сделал warmup шейдера, который использовался для вспышки (Additive), но это не помогло. Профайлер показал, что именно сама система частиц долго стартует в первый раз, и мне пришлось добавить искусственный прогрев частиц - я взрываю один динамит в самом начале игры, без звука и за границами камеры.

#performance
  • 🔥 11
More from @spellsingergames
  1. Oct 1, 2026Автор
  2. Aug 31, 2026Post #235
  3. Aug 25, 2026Прошли модерацию на Crazy Games. Basic Launch продлится до 15 сентября или пока не наберет…
  4. Aug 24, 2026А мы, тем временем, идём покорять #crazy_games Вчера ночью отправили билд на модерацию. Мо…
  5. Aug 24, 20262 недели нужно рекоммендеру Яндекс игр, чтобы как-то отреагировать на изменения метрик. AR…
  6. Aug 14, 2026Шестой эпизод подкаста ГЕЙМДЕВ ПОД ПИВОМ уже во вторник, в 22:30МСК! Хорошенечко отоспитес…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →