Путаница с размером спрайта в мировом пространстве (единство)


11

У меня Sprite с разрешением 1080х1920. И я установил Разрешение Game View также на 1080x1920. Я думал о том, что спрайт (1080x1920) должен правильно помещаться в окне камеры.

разрешение изображения 1080х1920

Но когда я перетаскиваю этот спрайт, спрайт увеличивается и выходит из поля зрения камеры.

вид экрана, спрайт вне камеры

Какие настройки мне нужно сделать, чтобы убедиться, что этот спрайт на 100% помещается в поле зрения камеры. Я мог бы изменить Шкалу Трансформации Спрайта. Но это вызовет проблемы, потому что у меня много других спрайтов, и они должны быть пропорциональны.


Вы говорите о 3D-спрайте? Или UI 2D спрайт?
ТомЦагк

Ответы:


19

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

Как и все остальное в этом игровом мире, часть, которая заканчивается отображением на экране, определяется тем, как вы настроили свой объект Camera.

Итак, есть четыре части, которые определяют размер вашего спрайта:

  1. Разрешение источника спрайта.

  2. Параметр Pixels per Unit выбран в инспекторе настроек импорта.

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

    Высота в мировых единицах = высота источника в пикселях / пикселях на единицу

    Обычно вы должны выбирать это число, чтобы оно соответствовало некоторым метрикам игрового процесса в вашей игре. например. если у вас есть сетка тайлов с интервалом 135 пикселей, то выбор Pixels per Unit = 135 сделает каждую ячейку вашей сетки ровно на 1 единицу шириной в системе координат игры, что сделает ваши вычисления более удобными.

  3. Орфографической размер вашей камеры.

    (Или, если вы используете перспективную камеру, сочетание поля зрения камеры и глубины от камеры до вашего спрайта)

    Это определяет, сколько единиц вашего мира может видеть ваша камера, от центра ее обзора до верхнего края.

    Часть занимаемой высоты камеры = высота в мировых единицах / (2 * Размер камеры по ортогональности)

    Поэтому, если мы будем работать со значением 135 PPU, спрайт высотой 1920 пикселей в мире будет иметь высоту 14,222222, что означает, что нам понадобится камера с высотой 7,111111 для съемки всего объекта сверху вниз (поскольку высота камеры измеряется от середина)

  4. Размер пикселя вашего окна / выходное разрешение экрана.

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

    Таким образом, количество мировых единиц, которые ваша камера может видеть сверху вниз, отображает количество пикселей в вашем окне / экране сверху вниз.

    Размер выходного пикселя = часть занимаемой высоты камеры * высота окна в пикселях

    Таким образом, если наш экран имеет высоту 1920 пикселей, а наш исходный спрайт точно заполняет поле зрения камеры, то он будет выводиться на все 1920 пикселей экрана с выравниванием 1: 1.


Я очень благодарен вам за ваш подробный ответ !!!!
Файзан-хан

3
Я рад, что вы нашли это полезным! Я написал несколько других вопросов и ответов о работе с размерами спрайтов в Unity, которые также могут помочь: при выборе размеров спрайтов , при сопоставлении внешнего вида спрайтов разных размеров , при масштабировании пиксельной графики
DMGregory

1
Спасибо .... Я также следил за тобой в Твиттере ... Мне очень приятно общаться с кем-то, кто работает в UbiSoft :)
Файзан Хан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.