• Игры
  • Отрасль
  • Ресурсы
  • Сообщество
  • Обучение
  • Поддержка
Услуги разработчиков
Движок Unity
Создавайте 2D и 3D игры для любой платформы
ЗагрузитьТарифы и цены
Монетизация
Встроенная покупка (IAP)
Откройте и управляйте IAP в разных магазинах
Mediation
Максимизируйте доход и оптимизируйте монетизацию
Качество рекламы
Защитите пользовательский опыт вашего приложения
Tapjoy
Создавайте долгосрочную лояльность пользователей
Все продукты монетизации
Привлечение пользователей
Привлечение пользователей
Будьте замечены и привлекайте мобильных пользователей
Unity Vector AI
Соединяйте игроков с подходящими играми
Aura - реклама на устройстве
Достигайте пользователей на устройстве в пиковые моменты вовлеченности
Все продукты для роста
Примеры использования
3D сотрудничество
Создавайте и просматривайте 3D проекты в реальном времени
Иммерсивное обучение
Обучение в иммерсивных средах
Пользовательские опыты
Создавайте интерактивные 3D опыты
Все отраслевые решения
Отрасли
Производство
Достигнуть операционного совершенства
Торговля
Преобразовать опыт в магазине в онлайн-опыт
Автомобильная отрасль
Повысить инновации и опыт в автомобиле
Все отрасли
Техническая библиотека
Документация
Официальные руководства пользователя и ссылки на API
Инструменты для разработчиков
Версии релизов и трекер проблем
План развития
Обзор предстоящих функций
Глоссарий
Библиотека технических терминов
Дополнительная информация
Истории успеха
Истории успеха из реальной жизни
Руководства по лучшим практикам
Советы и хитрости от экспертов
Все ресурсы
Что нового
Блог
Обновления, информация и технические советы
Новости
Новости, истории и пресс-центр
Сообщество
Обсуждения
Обсуждать, решать проблемы и соединяться
События
Глобальные и местные события
Истории сообщества
Made with Unity
Показ Unity-креаторов
Прямые трансляции
Присоединяйтесь к разработчикам, креаторам и инсайдерам
Награды Unity
Празднование Unity-креаторов по всему миру
Для каждого уровня
Unity Learn
Освойте навыки Unity бесплатно
Профессиональное обучение
Повышайте уровень своей команды с тренерами Unity
Не использовали Unity раньше
С чего начать
Приступите к обучению
Основные пути Unity
Не использовали Unity раньше? Начните свое путешествие
Практические руководства
Практические советы и лучшие практики
Образование
Для студентов
Запустите свою карьеру
Для преподавателей
Улучшите свое преподавание
Лицензия Education Grant
Принесите мощь Unity в ваше учебное заведение
Программы сертификации
Докажите свое мастерство в Unity
Варианты поддержки
Получить помощь
Помогаем вам добиться успеха с Unity
Планы успеха
Достигайте своих целей быстрее с помощью экспертов
FAQ
Ответы на часто задаваемые вопросы
Связаться с нами
Свяжитесь с нашей командой
Тарифы и цены
Язык
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Соцсети
Валюта
Купить
  • Продукты
  • Unity Ads
  • Подписка
  • Unity Asset Store
  • Торговые посредники
Образование
  • Студенты
  • Преподаватели
  • Образовательные учреждения
  • Сертификация
  • Learn
  • Программа развития навыков
Загрузить
  • Unity Hub
  • Архив загрузок
  • Программа бета-тестирования
Unity Labs
  • Лаборатории
  • Публикации
Ресурсы
  • Платформа обучения
  • Сообщество
  • Документация
  • Unity QA
  • FAQ
  • Статус услуг
  • Истории успеха
  • Made with Unity
Unity
  • Наша компания
  • Новостная рассылка
  • Блог
  • События
  • Вакансии
  • Справка
  • Пресса
  • Партнеры
  • Инвесторы
  • Партнеры
  • Безопасность
  • Отдел Social Impact
  • Инклюзия и разнообразие
  • Связаться с нами
© Unity Technologies, 2025
  • Правовая информация
  • Политика конфиденциальности
  • Cookie-файлы
  • Использование персональных данных

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.

Hero background image

Оптимизация производительности 2D-игр с Unity Tilemap

Получите советы по улучшению производительности ваших 2D-игр и мобильных приложений с помощью Unity Tilemap. Темы, рассмотренные здесь, включают размер сцены, сериализацию, потребление ресурсов рендерера и пакетирование.
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.
Нажмите здесь.

Эти советы лучше всего подойдут пользователям, имеющим некоторый опыт работы с инструментами 2D в Unity. Еще один отличный ресурс для профессиональных создателей, разрабатывающих коммерческие 2D-игры с помощью Unity, — это наша электронная книга, 2D-арт игр, освещение и анимация.

Если вы новичок в разработке 2D-игр с помощью Unity, начните с руководства по 2D для новых пользователей.

  • Общие советы по производительности
  • Краткое введение в Tilemap
  • Меньше GameObjects
  • Меньший размер сцены
  • Меньше коллайдеров
  • Сниженное потребление ресурсов рендеринга
  • Сниженные затраты на отсечение
  • Меньше вызовов пакетирования
  • Более высокая частота кадров
  • Упакуйте спрайты с помощью Sprite Atlas
  • Больше ресурсов для создателей 2D-игр
Скриншот редактора Unity
ИЗОБРАЖЕНИЕ ИЗ 2D-ПРОЕКТА UNITY LOST CRYPT

Общие советы по производительности

Вот несколько общих советов по производительности, которые стоит учитывать:

  • Думайте о производительности ваших активов (данных) с самого начала. Если эти элементы неэффективны, вы сможете сделать мало для оптимизации вашего кода позже.
  • Профиль на вашем самом низком доступном целевом устройстве. Используйте Профайлер Unity на протяжении всего процесса разработки проекта, а также инструменты профилирования, специфичные для платформы, такие как Xcode для устройств iOS.
  • Не используйте более трети доступной оперативной памяти на вашем самом низком целевом устройстве. Это гарантирует, что ваш контент будет хорошо работать на широком спектре мобильных устройств (дешевые Android-телефоны по-прежнему остаются самыми популярными на мобильных рынках).

Для получения дополнительных советов по оптимизации 2D, смотрите эти ресурсы:

  • Быстрые советы по 2D
  • Сказания из окопов оптимизации
  • Понимание оптимизации в Unity
Посмотреть Lost Crypt
Unity — быстрая разработки 2D-игр с Tilemap
ПРИМЕР ТАЙЛМЭПА

Краткое введение в Tilemap

Компонент Tilemap позволяет эффективно создавать 2D уровни, используя плитки на наложенной сетке. Он состоит из нескольких элементов, включая:

  • Класс плитки
  • Ресурсы
  • Компонент сетки
  • Палитра плиток
  • Скриптовые кисти

Вы можете создавать 2D уровни, используя комбинацию спрайтов и игровых объектов, и контролировать такие свойства, как слои сортировки, коллайдеры тайловой карты и анимированные плитки, среди прочего. Вы также можете рисовать Квадратные, Шестиугольные и Изометрические спрайты.

Рисуйте свои уровни с помощью Tilemap, чтобы компонент коллайдера Tilemap 2D автоматически генерировал коллайдер вокруг плиток (на основе настройки типа коллайдера плитки), когда он применяется к игровому объекту Tilemap.

Давайте посмотрим на прирост производительности, который вы получаете с помощью Tilemap по сравнению с сценами, построенными с использованием спрайтов.

Tilemap с меньшим числом объектов
TILEMAP В 2D-ДЕМОНСТРАЦИИ UNITY DRAGON CRASHERS

Меньше GameObjects

Использование Tilemap уменьшает время загрузки, а также использование памяти и ЦП.

Если вы ранее разрабатывали 2D-игры и приложения, то знаете, что в вашей игре может оказаться большое количество спрайтов, каждый из которых является отдельным GameObject. На каждом из этих GameObject спрайтов есть компоненты, включая Transform и Renderer, которые занимают память. Другие компоненты, такие как Colliders, имеют накладные расходы на ЦП.

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

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

Unity — уменьшение объема сцены с помощью Tilemap
СРАВНЕНИЕ ДВУХ СЕРИАЛИЗОВАННЫХ ФАЙЛОВ, ОДИН СОЗДАН С ИСПОЛЬЗОВАНИЕМ СПРАЙТОВ (СЛЕВА), А ДРУГОЙ С ИСПОЛЬЗОВАНИЕМ TILEMAPS (СПРАВА)

Меньший размер сцены

Tilemap Unity уменьшает размер сцены. Меньшее количество GameObject и компонентов означает меньше объектов для загрузки с диска, десериализации и хранения в памяти во время выполнения.

Загрузка сцен в Unity — это двухэтапный процесс: Сначала данные считываются с диска. Это процесс, который часто занимает больше всего времени в вашей игре, особенно на устройствах Android. Затем данные десериализуются. Десериализация — это процесс преобразования данных из одного формата в другой. По сути, это восстанавливает данные и объекты из сохраненного состояния. Unity выполняет сериализацию внутренне, так что каждый раз, когда он загружает файл сцены в редакторе и во время выполнения, он берет эти сохраненные файлы и превращает их в объекты Unity.

На изображении выше вы можете увидеть сравнение между двумя сериализованными файлами сцены, один из которых использует Tilemaps, а другой воссоздан с использованием спрайтов. Спасибо Pixel Reign за эту сцену из их игры Robbie Swifthand.

Справа находится раздел сериализованного Tilemap, состоящий из четырех тайлов. Правила для всех тайлов, включая тип используемых тайлов, установлены в верхней части Tilemap. Каждый из последующих тайлов указывает свойства, такие как используемый тайл и его позиция.

Слева изображен один спрайт с компонентами Transform и Sprite Renderer.

Из этого сравнения ясно, сколько работы необходимо для сериализации спрайтов. В частности, сцена с использованием спрайтов имеет 370 000 строк в своем файле, в то время как сцена с Tilemap имеет 30 000 строк. Меньшие размеры проектов и репозиториев приводят к более быстрым временам итерации и более плавным рабочим процессам.

Если вы хотите просмотреть свои сцены в текстовом файле, перейдите в Настройки редактора, включите Режим сериализации ассетов, нажмите на Force Text и откройте файл сцены .unity в Текстовом редакторе.

Unity — уменьшение числа коллайдеров с помощью Tilemap
КОЛЛАЙДЕР TILEMAP 2D В СОЧЕТАНИИ С КОМПОЗИТНЫМ КОЛЛАЙДЕРОМ 2D

Меньше коллайдеров

Вы можете объединить коллайдер Tilemap 2D с композитным коллайдером. Это не только уменьшит количество коллайдеров и спрайтов, но и повысит эффективность вашего производства, так как не нужно будет каждый раз заново строить сложные формы столкновений при внесении изменений. Композитный коллайдер заботится об этом.

Примеры использования Tilemap
СЛУЧАЙ ИСПОЛЬЗОВАНИЯ ДЛЯ ОТДЕЛЬНЫХ GAMEOBJECT С ИХ SPRITE RENDERER ПРОТИВ TILEMAP

Сниженное потребление ресурсов рендеринга

Как уже упоминалось ранее, у каждого спрайта есть компонент Sprite Renderer, и наличие большего количества рендеров требует больше работы от ЦП, включая время на подготовку отсечения и очистку для рендеринга. Используя Tilemaps, вы получите меньше компонентов рендерера, тем самым сэкономив работу ЦП.

Сниженные затраты на отсечение

Более одной камеры в вашей сцене означает больше рендеров. Это увеличивает стоимость отсечения.

В режиме просмотра камеры существует стоимость отсечения для каждого рендерера и каждой камеры. Каждая камера должна выполнять проверки отсечения для каждого компонента рендерера в сцене, поэтому, если у вас есть многокамерная установка для вашей игры, использование Tilemaps поможет вам снизить эту стоимость.

сокращение вызовов сборки пакетов
ОТЛАДЧИК КАДРОВ

Меньше вызовов пакетирования

Сборка — это объединение всей геометрии, которую можно нарисовать, без выполнения другого вызова SetPass. Рендерер тайловой карты объединяет геометрию спрайтов на основе их положения. В результате рендерер тайловой карты отправляет меньше мешей с большей геометрией в конвейер рендеринга, по сравнению с рендерером спрайтов, который отправляет больше мешей с меньшей геометрией. Как показывает таблица в следующем разделе, сцена на основе тайловой карты имеет значительно меньшее количество сборок.

Вы можете проверить сборку, посмотрев на панель статистики в вашем игровом представлении. Вы также можете использовать Отладчик кадров, чтобы определить, почему элементы не собираются.

Сцены с таблицей спрайтов и тайлов.

Более высокая частота кадров

Чтобы достичь 60 fps, каждый кадр может занимать максимум 16 мс для рендеринга. Когда образец сцены был профилирован на старом iPhone 7, версия на основе спрайтов имела 244 мс на кадр, в то время как версия на основе тайловой карты имела 13 мс на кадр.

Наконец, использование ОЗУ составило 1,1 ГБ для сцены на основе спрайтов, что слишком много для телефонов Android начального уровня, например. Сцена на основе тайловой карты использовала всего 21 МБ ОЗУ, что делает ее подходящей для работы на более широком диапазоне мобильных устройств.

Сравнение выше показывает явную разницу в производительности между двумя сценами.

Демо-версия атласа спрайтов.
ИСПОЛЬЗОВАНИЕ АТЛАСА СПРАЙТОВ В DRAGON CRASHERS.

Упакуйте спрайты с помощью Sprite Atlas

Атлас спрайтов — это инструмент редактора, который позволяет вам упаковывать ваши спрайты в текстуры для оптимизации использования памяти и вызовов отрисовки. Создайте актив, атлас спрайтов, который включает все спрайты, используемые в вашей тайловой карте, чтобы их можно было объединить рендерером тайловой карты всего в один вызов отрисовки (при условии, что все спрайты помещаются в одну текстуру).

Больше ресурсов для создателей 2D-игр

Улучшите свои 2D навыки: Наш список чтения блога предоставляет полезные советы по разработке 2D игр.

2D Игровая графика, анимация и освещение для художников: Эта бесплатная электронная книга предоставляет лучшие практики для максимального использования инструментов 2D в Unity.

Обзор инструментов 2D: Посмотрите наш удобный обзор того, что Unity предлагает разработчикам 2D.

Процедурные шаблоны с Tilemaps – Часть I и Часть II: Добавьте разнообразия в вашу игру с помощью процедурной генерации. Эти посты объясняют некоторые алгоритмы, которые вы можете использовать с Tilemap и RuleTile.