Плутанина щодо розміру спрайту у світовому просторі (Єдність)


11

У мене спрайт з роздільною здатністю 1080x1920. І я встановив роздільну здатність перегляду гри на 1080x1920. Я думав, що спрайт (1080x1920) повинен правильно розміщуватися в режимі перегляду камери.

роздільна здатність зображення - 1080x1920

Але коли я перетягую цей спрайт, спрайт збільшується і виходить із виду камери.

вид екрана, спрайт поза камерою

Які налаштування мені потрібно зробити, щоб переконатися, що цей спрайт на 100% поміщається в межах камери. Я міг змінити шкалу трансформації спрайт. Але це спричинить проблеми, тому що я маю багато інших справ, з якими треба мати справу, і вони повинні бути пропорційними.


Ви говорите про 3D спрайт? Або спрайт UI 2D?
TomTsagk

2D спрайт .....
Фаян Хан

Відповіді:


19

Це має сенс, коли ви згадуєте, що спрайти не просто випирають піксель на піксель на екрані (що може зробити кошмаром такий же вигляд на екранах з різною роздільною здатністю, оскільки всі вони обрізають ваше мистецтво по-різному) , а скоріше вони є частиною вашого 3D-світу в системі координат ігрових ігор, що ви можете керувати.

Як і все в цьому світі геймплея, частина, яка закінчується відображенням на екрані, визначається тим, як ви налаштували об’єкт Camera.

Отже, є чотири частини, які визначають, наскільки великий ваш спрайт:

  1. Дозвіл джерела спрайту.

  2. Налаштування пікселів на одиницю , вибране інспектором параметрів імпорту.

    Це встановлює коефіцієнт перетворення для перетворення розмірів від пікселів у просторі текстур до одиниць у світовому просторі (тобто простір, у якому відбуваються всі ваші ігрові та фізичні розрахунки)

    Висота у світових одиницях = Висота джерела в пікселях / пікселях на одиницю

    Як правило, слід вибрати це число, щоб узгодитись із деякими відповідними показниками геймплея у вашій грі. напр. якщо у вас є сітка для плитки з інтервалом в 135 пікселів, вибір пікселів на одиницю = 135 зробить кожну клітинку вашої сітки рівно на 1 одиницю в системі координат гри, зробивши ваші обчислення зручнішими.

  3. Орфографічною розмір вашої камери.

    (Або, якщо ви використовуєте перспективну камеру, поєднання поля зору камери та глибини від камери до спрайту)

    Це визначає, скільки одиниць вашого світу може бачити ваша камера, від центру її огляду до верхнього краю.

    Частина висоти зайнятої камери = висота у світових одиницях / (2 * ортогональний розмір)

    Отже, якщо ми працюємо зі значенням 135 PPU, спрайт висотою 1920 пікселів буде у світі висотою 14,222222 одиниці, це означає, що нам потрібна камера висотою 7,111111, щоб захопити всю річ зверху вниз (оскільки висота камери вимірюється від середина)

  4. Розмір пікселя роздільної здатності екрана / вікна.

    За замовчуванням погляд камери заповнить екран вертикально, тому якщо екран / вікно зміниться по висоті, вертикальний обріз сцени не зміниться (об’єкт у верхньому або нижньому краї екрану не переміститься або отримуйте обрізку, вся сцена просто стане більшою чи меншою, щоб заповнити наявну висоту).

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

    Розмір піксельного виходу = Частина зайнятої висоти камери * Висота вікна в пікселях

    Отже, якщо наш екран висотою 1920 пікселів, а наш джерельний спрайт точно заповнює погляд камери, то він виводитиметься на цілі 1920 пікселів екрана в 1: 1 вирівнюванні.


Я вам дуже вдячний за вашу детальну відповідь !!!!
Файзан-хан

3
Я радий, що ти знайшов це корисним! Я написав кілька інших запитань щодо роботи з розмірами спрайтів в Unity, що також може допомогти: про вибір розмірів спрайтів , про відповідність зовнішнього вигляду спрайтів різного розміру , про масштабування піксельного мистецтва
DMGregory

1
Дякую .... Я також стежив за вами в Twitter ... Мені дуже добре, що я спілкувався з людиною, яка працює в UbiSoft :)
Faizan Khan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.