Как оптимизировать игру в Unity

optimizacia Уроки

При разработке собственных игр  есть вероятность, столкнутся с проблемами оптимизации, т.е. будут ли у вас все модели низкополигонными(Low Polly) или даже отсутствие объемных эффектов и частиц, игра все равно не работает должным образом на любых устройствах. Что бы избежать таких проблем, существуют основные правила или приемы оптимизации игр в Unity.

Первым делом, проверьте показатель “draw calls” в окне Profiler; если он составляет больше нескольких тысяч (для PC) или нескольких сотен (для мобильных устройств), то вам требуется оптимизация игровых объектов.

profiler

Вот несколько основных приемов и советов по оптимизации игр.

Текстуры и материалами.

Уменьшите количество различных материалов в сцене — используйте один материал для нескольких объектов,

Шейдеры для материалов используйте из категории Mobile/ — т.к. Они прекрасно работают и на не мобильных платформ, но являются упрощёнными версиями более сложных шейдеров.

Используйте сжатие текстур, когда это возможно, а также отдавайте предпочтение 16-битным текстурами перед 32-битными.

Используйте меньше текстур.

Настройка игрового мира.

Туман (Fog) – очень сильно нагрузит вашу игру,

Для не статических объектов с коллайдерами старайтесь использовать Rigibody в режиме isKinematic.

Используйте один источник света, а для отдельных затемнений карты используйте Lightmap`ы.

GPU обрабатывает слишком много вершин. Какое количество вершин является нормальным, определяется GPU и набором вертексных шейдеров. Можно посоветовать использовать не более 100 тысяч для мобильных устройств и не более нескольких миллионов полигонов для PC.

Сохраняйте количество вершин между 200 000 и 3 000 000 в каждом кадре, если целевая платформа — PC.

Установите свойство Static для неподвижных объектов, чтобы использовать внутреннею оптимизацию static batching.

Используйте скайбоксы для имитации далеко расположенной геометрии.

Тени в реальном времени хорошо выглядят, но они могут сильно снижать производительность, одновременно добавляя дополнительные draw calls для CPU и дополнительную обработку для GPU.

Настройка terrain.

Старайтесь не использовать большие размеры карт,

Установите значение pixel error максимальное значение,

Настройте отображение растительности, деревьев и объектов следующими параметрами:

  • Detail Density — Количество объектов деталей/травы в данной условной единице площади. Можно снизить значение для снижения потребления ресурсов на рендеринг,
  • Detail Distance — Расстояние (от камеры), после которого детали будут отсекаться,
  • Tree Distance — Расстояние (от камеры), за которым деревья будут отсекаться,
  • Fade length — Расстояние перехода деревьев из 3D объектов в плоские спрайты,
  • Max Mesh Trees — Максимальное количество видимых деревьев, которые будут представлены в качестве полноценных 3D мешей. После этого предела, деревья будут заменяться плоскими спрайтами.

Скрипты.

Метод FixedUpdate больше подойдет для небольших проверок относящиеся к физике,

CompareTag быстрее делает проверку тэга по имени,

Делайте как можно меньше вызовов thisTransform.forward или position, лучше эти значения один раз получить в Update,

(thisTransform.position — target.position).sqrMagnitude быстрее Vector3.Distance,

Старайтесь для включение скрипта на объекте при возможности использовать не GetComponent(…).enabled с заранее отключенным скриптом, а AddComponent(…) при заранее не повешенном скрипте на объекте,

Используйте статические переменные.

Заключение.

Если стараться придерживаться этих правил, можно достаточно существенно оптимизировать вашу игру.

Возможно, здесь указаны не все методы, если вам есть что добавить или вы считаете что какой то способ не подходит для оптимизации, пишите нам в комментариях. Удачных проектов!

🎥 Видео

Оптимизация игры на Unity, часть 1. BatchingСкачать

Оптимизация игры на Unity, часть 1. Batching

Как ОПТИМИЗИРОВАТЬ игру на UnityСкачать

Как ОПТИМИЗИРОВАТЬ игру на Unity

Оптимизация игр на UnityСкачать

Оптимизация игр на Unity

Оптимизация игр на unity. Material instancingСкачать

Оптимизация игр на unity. Material instancing

Динамическая оптимизация в UNITY! GPU instancingСкачать

Динамическая оптимизация в UNITY! GPU instancing

Как сделать оптимизацию игры в Unity 3D // Occlusion CullingСкачать

Как сделать оптимизацию игры в Unity 3D // Occlusion Culling

Оптимизация игры в Unity. Повышаем FPSСкачать

Оптимизация игры в Unity. Повышаем FPS

9 СОВЕТОВ ОПТИМИЗАЦИИ ИГРЫ | UnityСкачать

9 СОВЕТОВ ОПТИМИЗАЦИИ ИГРЫ | Unity

Оптимизация игры в Unity от 100 до 2000 fps. Объединение объектов и свет /Как создать игру [Урок 87]Скачать

Оптимизация игры в Unity от 100 до 2000 fps. Объединение объектов и свет /Как создать игру [Урок 87]

Оптимизация игры на Unity, часть 2. TerrainСкачать

Оптимизация игры на Unity, часть 2. Terrain

Как повысить фпс в игре на Unity под андроид. Оптимизация игры на Unity.Скачать

Как повысить фпс в игре на Unity под андроид. Оптимизация игры на Unity.

Оптимизация игры на Unity, часть 3 - Код. ProfilerСкачать

Оптимизация игры на Unity, часть 3 - Код. Profiler

ОПТИМИЗАЦИЯ ИГРЫ НА ЮНИТИСкачать

ОПТИМИЗАЦИЯ ИГРЫ НА ЮНИТИ

КАК ОПТИМИЗИРОВАТЬ ИГРУ НА UNITY?Скачать

КАК ОПТИМИЗИРОВАТЬ ИГРУ НА UNITY?

Оптимизация производительности в Unity с помощью Occlusion Culling / Как создать игру [Урок 79]Скачать

Оптимизация производительности в Unity с помощью Occlusion Culling / Как создать игру [Урок 79]

Оптимизация игры на Unity. Universal Render PipelineСкачать

Оптимизация игры на Unity. Universal Render Pipeline

Оптимизация игры на Unity. ФизикаСкачать

Оптимизация игры на Unity. Физика

Игра на Unity | Оптимизация освещения сцены | Урок 14Скачать

Игра на Unity | Оптимизация освещения сцены | Урок 14

Оптимизация игры на Unity, часть 5 - 3D модели. Текстурный атлас. Объединение мешейСкачать

Оптимизация игры на Unity, часть 5 - 3D модели. Текстурный атлас. Объединение мешей
Поделиться или сохранить к себе:
Технологичная помощь
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности и условия Пользовательского соглашения.