Подводя итог вышеприведенным пунктам, важно, чтобы два пиксельных элемента соответствовали друг другу, чтобы их плотность пикселей (текселей на единицу экрана / единицу мира) была одинаковой.
Используя в качестве примера некоторые спрайты из Stardew Valley, мы можем видеть, что, хотя спрайты имеют разные размеры текстуры, они совпадают по согласованной сетке, потому что каждый пиксель рисуется одинакового размера.
Если мы рассматриваем размер растения как одну плитку / одну единицу мирового пространства, мы можем видеть, что эта единица охватывает 16 пикселей по горизонтали и вертикали. Персонаж, имеющий удвоенную высоту растения, также покрывает вдвое больше плиток / мировых единиц, поэтому плотность пикселей остается неизменной - 16 пикселей на мировую единицу.
В частности, для Unity это предоставляется вам как параметр Pixels Per Unit в инспекторе настроек импорта Sprite . Пока вы используете одно последовательное число здесь для всех ваших спрайтов, Unity будет автоматически обрабатывать их рисование в нужном размере в вашем мире, чтобы сохранить плотность пикселей - даже если они нечетного размера, а не с степенью двойки или точной кратно вашему размеру плитки. Так что в этом примере и кустарник, и персонаж, и все остальное в игре будет использовать PPU OF 16.
Точное число, которое вы выбираете, не имеет большого значения, важнее всего последовательность. Если бы мы хотели, чтобы каждая ячейка охватывала 2 единицы мира, чтобы при редактировании уровней мы могли легко привязываться к углам плиток (нечетным числам) и центрам плиток (четным числам), мы бы использовали вместо этого PPU, равный 8, для всех наших спрайтов.
Только не опускай слишком низко. Вы увидите, что в некоторых статьях рекомендуется, чтобы значение PPU равнялось 1, что означает, что спрайт в 256 пикселей будет охватывать 256 мировых единиц. Хотя это может не звучать тревожно, такие системы, как физика, настроены, предполагая, что большая часть вашего игрового процесса будет происходить в масштабах от десятых до десятков единиц, а слишком большой масштаб может привести к их плохому поведению. Попробуйте выбрать количество пикселей, которые имеют смысл в вашем игровом процессе, например, ширину вашего персонажа или плитки. Это также облегчит вашу математику при программировании и дизайне уровней (например, «Я хочу, чтобы этот персонаж правильно разбил 3 плитки, вот и все x + 3.0f
»)
Обратите внимание, что масштабирование спрайта, изображения пользовательского интерфейса или его родительских элементов с использованием свойств преобразования приведет к их отклонению от этой постоянной плотности пикселей, поэтому будьте очень осторожны со свойствами масштаба и сохраняйте большую часть или всю свою сцену в масштабе 1,0 для простоты.
Еще одно предостережение: ничто из этого не определяет, насколько велики ваши спрайты на вашем экране. Это зависит от размера игрового окна / экрана и размера / угла обзора / угла обзора вашей камеры. Для 2D-идеального пикселя вам также необходимо убедиться, что высота вашего окна равна целому числу, кратному числу пикселей спрайта, которые видит ваша камера (ортографическая высота камеры x 2 x PPU)