August 25, 2019

2D Pixel Perfect средствами Unity

Пакет 2D Pixel Perfect содержит компонент Pixel Perfect Camera, который обеспечивает четкость изображения при разных разрешениях и стабильность движения.

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

Гизмо компонента Pixel Perfect Camera в сцене

Прикрепите компонент Pixel Perfect Camera к главной Камере в сцене, он представлен двумя зелеными ограничивающими прямоугольниками, центрированными по гизмо Камеры в окне Сцены. Сплошная зеленая ограничительная рамка показывает видимую область в представлении самой игры, а пунктирная ограничительная рамка показывает "эталонное" разрешение.

Эталонное разрешение - это исходное разрешение, для которого предназначены ваши спрайты, его влияние на функции компонента подробно описано в документации.

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

Подготовка ваших спрайтов

Откройте редактор спрайтов для выбранного спрайта.
Следуйте инструкциям ниже, чтобы правильно установить настройки для спрайта

Установите для параметра «compressing» значение «no».

После импорта текстур в проект в качестве спрайтов установите для всех спрайтов одинаковое значение «Pixels per unit».

В окне инспектора всех спрайтов, выставьте Filter Mode на 'Point'.

Под настройками «Sprite» выберите «Custom» в раскрывающемся меню Pivot. Затем выберите Pixels в раскрывающемся меню Pivot Unit Mode. Этот режим позволяет вам вводить точки поворота в пикселях и автоматически привязывать точку поворота к углам пикселей при перетаскивании точки поворота в положение.


Если для режима Sprite задано значение Multiple и имеется несколько элементов Sprite, щелкните каждый из элементов, чтобы выбрать его. Точка вращения должна быть установлена ​​для каждого элемента индивидуально.

Настройки snap

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


Откройте Настройки snap (menu: Edit > Snap Settings...)

Для Move X / Y / Z установите их значения 1 / Pixels Per Unit

Настройки привязки не применяются сами. Если в вашей сцене есть какие-либо ранее существующие объекты, выберите каждый из них и нажмите «snap all axes», чтобы применить параметры привязки.

Настройки камеры


Asset pixel per unit
Это значение представляет собой количество пикселей, составляющих одну единицу сцены. Сопоставьте это значение со значениями «pixels per unit» всех спрайтов в пределах сцены.

reference resolution

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

upscale render texrure
По умолчанию сцена воспроизводится с идеальным разрешением в пикселях, наиболее близким к разрешению полного экрана.

Результатом являются пиксели без сглаживания и без поворота, которые могут быть желательным визуальным стилем для определенных игровых проектов.

Pixel Snapping
Включите эту функцию, чтобы привязать Sprite Renderers к сетке в мировом пространстве во время рендеринга. Размер сетки основан на значении «Количество пикселей на единицу».

Pixel Snapping предотвращает перемещение субпикселей и заставляет спрайты двигаться с попиксельным шагом. Это не влияет ни на какие позиции GameObjects Transform.

Crop Frame
Обрезает область просмотра вдоль отмеченной оси черными полосами в соответствии с эталонным разрешением. Черные полосы добавлены, чтобы сделать Game View подходящим для разрешения экрана.

Запуск в режиме редактирования

Включите этот параметр для предварительного просмотра изменений настроек камеры в режиме редактирования. Это приведет к постоянным изменениям сцены, пока она активна.