Кілька дозволів
Проблема множинних дозволів
Розробникам часто важко зрозуміти, як найкраще підтримувати кілька роздільних здатностей у своїх іграх. Для настільних і консольних ігор це більш-менш просто, оскільки співвідношення сторін більшості екранів становить 16:9, а роздільна здатність стандартна (720p, 1080p, 1440p, 4K, …).
Для мобільних ігор спочатку це було легко. Протягом багатьох років iPhone і iPad використовували однакову роздільну здатність. Коли Retina була реалізована, вони просто подвоїли щільність пікселів; більшості розробників доводилося надавати ресурси за умовчанням і подвійною роздільною здатністю.
Зараз це вже не так, оскільки існує багато різних розмірів екрану, щільності та співвідношення сторін. Нетрадиційні розміри також стають дедалі популярнішими, наприклад ультраширокі дисплеї.
Для 3D-ігор немає особливої потреби підтримувати кілька роздільних здатностей (з естетичної точки зору). 3D-геометрія просто заповнить екран залежно від поля зору, не враховуючи співвідношення сторін. Основною причиною, чому можна захотіти підтримувати це, у цьому випадку, є продуктивність (працює з нижчою роздільною здатністю для збільшення кадрів на секунду).
Для двовимірних і ігрових інтерфейсів це інша справа, оскільки мистецтво потрібно створювати з використанням певних розмірів пікселів у таких програмах, як Photoshop, GIMP або Krita.
Оскільки макети, співвідношення сторін, роздільна здатність і щільність пікселів можуть сильно змінюватися, більше неможливо розробити інтерфейс користувача для кожного окремого екрана. Треба використовувати інший метод.
Один розмір для всіх
Найпоширеніший підхід полягає у використанні однієї базової роздільної здатності, а потім підгонці її до всього іншого. Ця роздільна здатність – це те, як очікується, що більшість гравців гратимуть у гру (враховуючи їхнє обладнання). Для мобільних пристроїв Google має корисну статистику онлайн, а для комп’ютерів Steam також робить.
Як приклад, Steam показує, що найпоширенішою основною роздільною здатністю дисплея є 1920×1080, тому розумним підходом є розробка гри для цієї роздільної здатності, а потім масштабування для різних розмірів і пропорцій.
Godot надає кілька корисних інструментів, щоб легко це зробити.
Дивись також
Ви можете побачити, як працює підтримка Godot для кількох роздільних здатностей, за допомогою демонстраційного проекту «Кілька роздільних здатностей і співвідношення сторін» <https://github.com/godotengine/godot-demo-projects/tree/master/gui/multiple_resolutions>`__.
Базовий розмір
Базовий розмір вікна можна вказати в параметрах проекту в Дисплей → Вікно.
Однак те, що він робить, не зовсім очевидно; двигун не намагатиметься перемкнути монітор на цю роздільну здатність. Радше сприймайте це налаштування як «розмір дизайну», тобто розмір області, з якою ви працюєте в редакторі. Цей параметр безпосередньо відповідає розміру синього прямокутника у 2D-редакторі.
Часто виникає потреба підтримувати пристрої з розмірами екрана та вікна, які відрізняються від базового розміру. Godot пропонує багато способів керування тим, як вікно перегляду буде змінено та розтягнуто на різні розміри екрана.
Примітка
На цій сторінці window стосується області екрана, виділеної системою для вашої гри, тоді як viewport стосується кореневого об’єкта (доступного з get_tree().root), яким гра керує, щоб заповнити цей екран область. Це вікно перегляду є екземпляром Window. Згадайте з introduction, що всі об’єкти Window є вікнами перегляду.
Щоб налаштувати розтягнутий базовий розмір під час виконання зі сценарію, скористайтеся властивістю get_tree().root.content_scale_size (див. Window.content_scale_size). Зміна цього значення може опосередковано змінити розмір 2D-елементів. Однак, щоб забезпечити доступний користувачеві варіант масштабування, рекомендується використовувати Розтягнути шкалу, оскільки його легше налаштувати.
Примітка
Ґодо дотримується сучасного підходу до кількох дозволів. Механізм ніколи не змінить роздільну здатність монітора самостійно. Хоча зміна роздільної здатності монітора є найефективнішим підходом, це також найменш надійний підхід, оскільки він може залишити монітор на низькій роздільній здатності, якщо гра аварійно завершує роботу. Це особливо часто трапляється в macOS або Linux, які не так добре обробляють зміни роздільної здатності, як Windows.
Зміна роздільної здатності монітора також позбавляє розробника гри будь-який контроль над фільтрацією та розтягуванням співвідношення сторін, що може бути важливим для забезпечення правильного відображення для ігор з піксельним мистецтвом.
Крім того, зміна роздільної здатності монітора значно повільніше вмикає та виводить з гри клавішу Alt Tab, оскільки монітор має змінювати роздільну здатність кожного разу, коли це робиться.
Зміна розміру %1
Існує кілька типів пристроїв з різними типами екранів, які, у свою чергу, мають різну щільність пікселів і роздільну здатність. Робота з усіма ними може бути важкою, тому Godot намагається трохи полегшити життя розробника. Вузол Viewport має кілька функцій для обробки зміни розміру, а кореневий вузол дерева сцени завжди є вікном перегляду (завантажені сцени створюються як дочірні для нього, і до нього завжди можна отримати доступ, викликавши ` get_tree().root` або get_node("/root")).
У будь-якому випадку, незважаючи на те, що зміна кореневих параметрів Viewport є, ймовірно, найбільш гнучким способом вирішення проблеми, це може потребувати багато роботи, кодування та здогадок, тому Godot надає набір параметрів у налаштуваннях проекту для обробки кількох роздільних здатностей.
Налаштування розтяжки
Налаштування розтягування знаходяться в налаштуваннях проекту та надають кілька варіантів:
Режим виділення
Налаштування Режим розтягування визначає, як основний розмір розтягується відповідно до роздільної здатності вікна чи екрана. У наведених нижче анімаціях використовується «базовий розмір» лише 16×9 пікселів, щоб продемонструвати ефект різних режимів розтягування. Один спрайт, також розміром 16 × 9 пікселів, охоплює все вікно перегляду, і діагональ Line2D додається поверх нього:
Режим розтягування = вимкнено (за замовчуванням): розтягування не відбувається. Одна одиниця в сцені відповідає одному пікселю на екрані. У цьому режимі налаштування Stretch Aspect не діє.
Режим розтягування = Елементи полотна: у цьому режимі основний розмір, указаний у ширині та висоті в налаштуваннях проекту, розтягується, щоб охопити весь екран (з урахуванням параметра Розтягнення). Це означає, що все відображається безпосередньо з цільовою роздільною здатністю. На 3D це не впливає, тоді як у 2D більше немає відповідності 1:1 між пікселями спрайтів і пікселями екрана, що може призвести до артефактів масштабування.
Режим розтягування = Viewport: масштабування Viewport означає, що розмір кореня Viewport встановлюється точно до базового розміру, зазначеного в розділі Display параметрів проекту. Сцена спочатку відображається в цьому вікні перегляду. Нарешті, це вікно перегляду масштабується відповідно до розміру екрана (з урахуванням параметра Stretch Aspect).
Щоб налаштувати режим розтягування під час виконання зі сценарію, використовуйте властивість get_tree().root.content_scale_mode (див. Window.content_scale_mode та ContentScaleMode enum ).
Розтягнутий аспект
Другий параметр – це аспект розтягування. Зауважте, що це діє, лише якщо для Режиму розтягування встановлено значення, відмінне від Вимкнено.
На анімації нижче ви помітите сірі та чорні області. Чорні області додаються двигуном і не можуть бути втягнені в них. Сірі зони є частиною вашої сцени, і до них можна звернути увагу. Сірі області відповідають області за межами синьої рамки, яку ви бачите в 2D-редакторі.
Stretch Aspect = Ignore: ігнорувати співвідношення сторін під час розтягування екрана. Це означає, що початкова роздільна здатність буде розтягнута, щоб точно заповнити екран, навіть якщо він ширший або вужчий. Це може призвести до нерівномірного розтягування: предмети виглядатимуть ширше або вище, ніж задумано.
Stretch Aspect = Keep: Зберігайте співвідношення сторін під час розтягування екрана. Це означає, що вікно перегляду зберігає свій вихідний розмір незалежно від роздільної здатності екрана, а чорні смуги будуть додані вгорі/внизу екрана ("літербокс") або з боків ("пілларбокс").
Це хороший варіант, якщо ви заздалегідь знаєте співвідношення сторін цільових пристроїв або якщо ви не хочете обробляти різні співвідношення сторін.
Stretch Aspect = Keep Width: зберігайте співвідношення сторін під час розтягування екрана. Якщо ширина екрана ширша за базовий розмір, ліворуч і праворуч додаються чорні смуги (розміщення на стовпах). Але якщо екран вищий за базову роздільну здатність, вікно перегляду буде збільшено у вертикальному напрямку (і більше вмісту буде видно внизу). Ви також можете подумати про це як про «розгорнути по вертикалі».
Зазвичай це найкращий варіант для створення GUI або HUD, які масштабуються, тому деякі елементи керування можна прив’язати внизу (Розмір і анкери).
Розтягнути формат = зберегти висоту: зберегти співвідношення сторін під час розтягування екрана. Якщо екран вищий за базовий розмір, угорі та внизу додаються чорні смуги (розміщення полів). Але якщо екран ширший за базову роздільну здатність, вікно перегляду буде збільшено в горизонтальному напрямку (і більше вмісту буде видно праворуч). Ви також можете розглядати це як «Розгорнути горизонтально».
Зазвичай це найкращий варіант для 2D-ігор, які прокручуються горизонтально (наприклад, ранери чи платформери).
Stretch Aspect = Expand: зберігайте співвідношення сторін під час розтягування екрана, але не зберігайте ні ширину, ні висоту. Залежно від співвідношення сторін екрана вікно перегляду буде більшим у горизонтальному напрямку (якщо екран ширший за базовий розмір) або у вертикальному напрямку (якщо екран вищий за вихідний розмір).
Порада
Щоб підтримувати як портретний, так і альбомний режими з однаковим автоматично визначеним коефіцієнтом масштабування, установіть базову роздільну здатність вашого проекту як квадрат (співвідношення сторін 1:1) замість прямокутника. Наприклад, якщо ви хочете розробити 1280×720 як базову роздільну здатність, але бажаєте підтримувати як портретний, так і альбомний режими, використовуйте 720×720 як базовий розмір вікна проекту в налаштуваннях проекту.
Щоб дозволити користувачеві вибрати бажану орієнтацію екрана під час виконання, не забудьте встановити Дисплей > Вікно > Ручний > Орієнтація на датчик.
Щоб налаштувати розтягнутий аспект під час виконання зі сценарію, використовуйте властивість get_tree().root.content_scale_aspect (див. Window.content_scale_aspect та ContentScaleAspect enum ).
Розтягнути шкалу
Налаштування Масштаб дозволяє додати додатковий коефіцієнт масштабування на додаток до того, що вже надано параметрами Розтягнути вище. Значення за замовчуванням 1.0 означає, що додаткове масштабування не відбувається.
Наприклад, якщо ви встановите Масштаб на 2.0 і залишите Режим розтягування на Вимкнено, кожна одиниця у вашій сцені відповідатиме 2×2 пікселям на екрані. Це хороший спосіб надати параметри масштабування для неігрових програм.
Якщо для Режиму розтягування встановлено значення canvas_items, 2D-елементи буде масштабовано відносно розміру базового вікна, а потім помножено на параметр Масштаб. Це може бути відкрито для гравців, щоб дозволити їм налаштувати автоматично визначений масштаб на свій смак, для кращої доступності.
Якщо Режим розтягування встановлено на вікно перегляду, роздільна здатність вікна перегляду ділиться на Масштаб. Це робить пікселі більшими та зменшує роздільну здатність візуалізації (із заданим розміром вікна), що може покращити продуктивність.
Щоб налаштувати розтягнутий масштаб під час виконання зі сценарію, скористайтеся властивістю get_tree().root.content_scale_factor (див. Window.content_scale_factor).
Режим розтягування масштабу
Починаючи з Godot 4.2, параметр Режим розтягування масштабу дозволяє вам обмежити автоматично визначений масштабний коефіцієнт (а також заданий вручну параметр Розтягнення масштабу) до цілих значень. За замовчуванням для цього параметра встановлено значення fractional, що дозволяє застосовувати будь-який коефіцієнт масштабування (включно з дробовими значеннями, наприклад 2,5). Якщо встановлено значення integer, значення округлюється до найближчого цілого числа. Наприклад, замість використання коефіцієнта масштабування 2,5 його буде округлено до 2,0. Це корисно, щоб запобігти спотворенню під час відображення піксельного зображення.
Порівняйте це піксельне зображення, яке відображається в режимі розтягування вікна перегляду, з режимом розтягування масштабу, встановленим на `` дробове``:
Шашка виглядає не «рівно». Ширина ліній у логотипі та тексті дуже різна.
Це піксельне зображення також відображається в режимі розтягування viewport, але цього разу режим розтягування масштабу встановлено на integer:
Шашка виглядає ідеально рівно. Ширина ліній однакова.
Наприклад, якщо базовий розмір вікна перегляду становить 640×360, а розмір вікна – 1366×768:
Якщо використовується
fractional, вікно перегляду відображається з роздільною здатністю 1366×768 (масштабний коефіцієнт становить приблизно 2,133×). Використовується весь віконний простір. Кожен піксель у вікні перегляду відповідає 2,133 × 2,133 пікселям у відображеній області. Однак, оскільки дисплеї можуть відображати лише «цілі» пікселі, це призведе до нерівномірного масштабування пікселів, що призведе до неправильного вигляду піксельного зображення.При використанні
integerвікно перегляду відображається з роздільною здатністю 1280×720 (масштабний коефіцієнт 2×). Простір, що залишився, заповнюється чорними смугами з усіх чотирьох сторін, так що кожен піксель у вікні перегляду відповідає 2×2 пікселям у відображеній області.
Цей параметр ефективний у будь-якому режимі розтягування. Однак, якщо використовується вимкнений режим розтягування, це вплине лише на параметр Шкала розтягування, округливши його вниз до найближчого цілого значення. Це можна використовувати для 3D-ігор, які мають піксельний інтерфейс користувача, щоб видима область у вікні тривимірного перегляду не зменшувалась у розмірі (що трапляється під час використання canvas_items або режиму розтягування viewport з ` цілочисельний` масштабний режим).
Порада
Ігри мають використовувати віконний режим Ексклюзивний повноекранний режим, на відміну від Повноекранного режиму, який призначений для того, щоб запобігти автоматичній обробці вікна Windows так, ніби воно було ексклюзивним повноекранним.
Повноекранний режим призначений для використання програмами з графічним інтерфейсом користувача, які хочуть використовувати попіксельну прозорість без ризику, що її вимкне ОС. Він досягає цього, залишаючи лінію в 1 піксель внизу екрана. Навпаки, Ексклюзивний повний екран використовує фактичний розмір екрана та дозволяє Windows зменшити тремтіння та затримку введення для повноекранних ігор.
У разі використання цілочисельного масштабування це особливо важливо, оскільки зменшення висоти на 1 піксель у повноекранному режимі може призвести до того, що цілочисельне масштабування використовує менший масштабний коефіцієнт, ніж очікувалося.
Загальні сценарії використання
Наступні налаштування рекомендуються для гарної підтримки декількох роздільних здатностей і пропорцій.
Настільна гра
Не піксельне мистецтво:
Встановіть базову ширину вікна на
1920і висоту вікна на1080. якщо у вас дисплей менший за 1920 × 1080, встановіть Заміна ширини вікна та Заміна висоти вікна на нижчі значення, щоб зробити вікно меншим під час запуску проекту.Крім того, якщо ви націлюєтеся переважно на пристрої високого класу, встановіть базову ширину вікна на
3840і висоту вікна на2160. Це дає змогу надавати 2D-ресурси з вищою роздільною здатністю, що забезпечує чіткіші візуальні ефекти за рахунок більшого використання пам’яті та розмірів файлів. Зауважте, що це призведе до того, що на пристроях із низькою роздільною здатністю текстури без MIP-відображення стануть зернистими, тому дотримуйтесь інструкцій, описаних у Зменшення псевдонімів при зниженні дискретизації.Встановіть режим розтягування на
canvas_items.Встановіть розтягнутий аспект на
expand. Це дозволяє підтримувати кілька форматів і краще використовувати високі дисплеї смартфонів (наприклад, 18:9 або 19:9).Налаштуйте прив’язки контрольних вузлів до правильних кутів за допомогою меню Макет.
Піксельне мистецтво:
Встановіть розмір базового вікна відповідно до розміру вікна перегляду, який ви збираєтеся використовувати. Більшість піксельних ігор використовують вікно перегляду розміром від 256×224 до 640×480. 640 × 360 є хорошою базовою лінією, оскільки вона масштабується до 1280 × 720, 1920 × 1080, 2560 × 1440 і 3840 × 2160 без будь-яких чорних смуг при використанні цілочисельного масштабування. Більший розмір вікна перегляду вимагатиме використання ілюстрації з вищою роздільною здатністю, якщо ви не маєте намір показати більше ігрового світу в певний момент часу.
Встановіть режим розтягування на
viewport.Встановіть розтягнутий аспект на
keep, щоб забезпечити єдине співвідношення сторін (з чорними смугами). Як альтернативу ви можете встановити розтягнутий аспект нарозгорнути, щоб підтримувати кілька пропорцій.Якщо використовується розтягнутий аспект
розгортання, налаштуйте прив’язки контрольних вузлів до правильних кутів за допомогою меню Макет.Встановіть режим розтягування масштабу на
ціле число. Це запобігає нерівномірному масштабуванню пікселів, через що піксельне зображення не відображається належним чином.
Примітка
Режим розтягування viewport забезпечує візуалізацію з низькою роздільною здатністю, яка потім розтягується до остаточного розміру вікна. Якщо ви погоджуєтесь із можливістю переміщення чи обертання спрайтів у «субпіксельних» позиціях або бажаєте мати 3D вікно перегляду з високою роздільною здатністю, вам слід використовувати режим розтягування canvas_items замість режиму розтягування viewport.
Мобільна гра в ландшафтному режимі
Godot налаштовано на використання альбомного режиму за замовчуванням. Це означає, що вам не потрібно змінювати налаштування проекту орієнтації дисплея.
Встановіть базову ширину вікна на
1280і висоту вікна на720.Крім того, якщо ви націлюєтеся переважно на пристрої високого класу, встановіть базову ширину вікна на
1920і висоту вікна на1080. Це дає змогу надавати 2D-ресурси з вищою роздільною здатністю, що забезпечує чіткіші візуальні ефекти за рахунок більшого використання пам’яті та розмірів файлів. Багато пристроїв мають дисплеї навіть з вищою роздільною здатністю (1440p), але різниця з 1080p майже не помітна, враховуючи невеликий розмір дисплеїв смартфонів. Зауважте, що це призведе до того, що на пристроях із низькою роздільною здатністю текстури без MIP-відображення стануть зернистими, тому дотримуйтесь інструкцій, описаних у Зменшення псевдонімів при зниженні дискретизації.Встановіть режим розтягування на
canvas_items.Встановіть розтягнутий аспект на
expand. Це дозволяє підтримувати кілька форматів і краще використовувати високі дисплеї смартфонів (наприклад, 18:9 або 19:9).Налаштуйте прив’язки контрольних вузлів до правильних кутів за допомогою меню Макет.
Порада
Щоб краще підтримувати планшети та телефони, що складаються (які часто мають дисплеї зі співвідношенням сторін, близьким до 4:3), розгляньте можливість використання базової роздільної здатності зі співвідношенням сторін 4:3, дотримуючись решти інструкцій, наведених тут. Наприклад, ви можете встановити ширину базового вікна на 1280, а висоту базового вікна на 960.
Мобільна гра в портретному режимі
Встановіть базову ширину вікна на
720і висоту вікна на1280.Крім того, якщо ви орієнтуєтесь насамперед на пристрої високого класу, встановіть базову ширину вікна на
1080і висоту вікна на1920. Це дає змогу надавати 2D-ресурси з вищою роздільною здатністю, що забезпечує чіткіші візуальні ефекти за рахунок більшого використання пам’яті та розмірів файлів. Багато пристроїв мають дисплеї навіть з вищою роздільною здатністю (1440p), але різниця з 1080p майже не помітна, враховуючи невеликий розмір дисплеїв смартфонів. Зауважте, що це призведе до того, що на пристроях із низькою роздільною здатністю текстури без MIP-відображення стануть зернистими, тому дотримуйтесь інструкцій, описаних у Зменшення псевдонімів при зниженні дискретизації.Установіть Дисплей > Вікно > Ручний > Орієнтація на
портрет.Встановіть режим розтягування на
canvas_items.Встановіть розтягнутий аспект на
expand. Це дозволяє підтримувати кілька форматів і краще використовувати високі дисплеї смартфонів (наприклад, 18:9 або 19:9).Налаштуйте прив’язки контрольних вузлів до правильних кутів за допомогою меню Макет.
Порада
Щоб краще підтримувати планшети та складні телефони (які часто мають дисплеї зі співвідношенням сторін, близьким до 4:3), розгляньте можливість використання базової роздільної здатності зі співвідношенням сторін 3:4, дотримуючись решти наведених тут інструкцій. Наприклад, ви можете встановити ширину базового вікна на 960, а висоту базового вікна на 1280.
Неігровий додаток
Встановіть ширину та висоту базового вікна на найменший розмір вікна, на який ви маєте намір націлитися. Це не обов’язково, але це гарантує, що ви розробите свій інтерфейс користувача з урахуванням невеликих розмірів вікон.
Зберігайте значення режиму розтягування за замовчуванням,
вимкнено.Зберігайте для аспекту розтягування значення за замовчуванням,
ignore(його значення не використовуватиметься, оскільки режим розтягуваннявимкнено).Ви можете визначити мінімальний розмір вікна, викликавши
get_window().set_min_size()у функції_ready()сценарію. Це не дозволяє користувачеві змінювати розмір програми нижче певного розміру, що може порушити макет інтерфейсу користувача.
Примітка
Godot ще не підтримує ручне перевизначення 2D масштабного коефіцієнта, тому неможлива підтримка hiDPI в неігрових програмах. У зв’язку з цим рекомендується залишити Дозволити Hidpi вимкненим у неігрових програмах, щоб дозволити ОС використовувати резервний варіант із низькою роздільною здатністю.
підтримка hiDPI
За умовчанням операційна система вважає проекти Godot з підтримкою DPI. Це контролюється параметром проекту Дисплей > Вікно > Dpi > Дозволити Hidpi, який слід залишати ввімкненим, коли це можливо. Вимкнення поінформованості про DPI може порушити повноекранний режим у Windows.
Оскільки проекти Godot підтримують DPI, вони можуть відображатися в дуже маленькому розмірі вікна під час запуску на дисплеї hiDPI (пропорційно роздільній здатності екрана). для a найпоширенішим способом вирішення цієї проблеми є зробити їх повноекранними за замовчуванням. Крім того, ви можете встановити розмір вікна в autoload's _ready() функції відповідно до розміру екрана.
Щоб 2D-елементи не виглядали надто маленькими на дисплеях HiDPI:
Для ігор використовуйте режими розтягування
canvas_itemsабоviewport, щоб розмір 2D-елементів автоматично змінювався відповідно до розміру поточного вікна.Для неігрових програм використовуйте режим розтягування «вимкнено» та встановіть масштаб розтягування на значення, яке відповідає коефіцієнту масштабування відображення у функції
_ready()autoload. Коефіцієнт масштабування дисплея встановлюється в налаштуваннях операційної системи, і його можна запитати за допомогою screen_get_scale. Наразі цей метод реалізований лише в macOS. В інших операційних системах вам потрібно буде реалізувати метод вгадування масштабного коефіцієнта відображення на основі роздільної здатності екрана (з налаштуванням, яке дозволяє користувачеві змінити це, якщо потрібно). Саме такий підхід зараз використовує редактор Godot.
Налаштування Дозволити Hidpi діє лише в Windows і macOS. Він ігнорується на всіх інших платформах.
Примітка
Сам редактор Godot завжди позначений як DPI-aware. Запуск проекту з редактора буде з урахуванням DPI, лише якщо Дозволити Hidpi увімкнено в налаштуваннях проекту.
Зменшення псевдонімів при зниженні дискретизації
Якщо гра має дуже високу базову роздільну здатність (наприклад, 3840 × 2160), псевдонім може з’явитися під час зменшення роздільної здатності до чогось значно нижчого, наприклад 1280 × 720.
Щоб вирішити цю проблему, ви можете ввімкнути mipmaps для всіх ваших 2D текстур. Однак увімкнення mipmaps збільшить використання пам’яті, що може бути проблемою на мобільних пристроях низького класу.
Обробка пропорцій
Після врахування масштабування для різних роздільних здатностей переконайтеся, що ваш інтерфейс також масштабується для різних пропорцій. Це можна зробити за допомогою anchors та/або containers.
Масштабування поля зору
Властивість Зберігати аспект вузла 3D-камери за замовчуванням використовує режим масштабування Зберігати висоту (також називається Hor+). Зазвичай це найкраще значення для настільних і мобільних ігор у альбомному режимі, оскільки широкоформатні дисплеї автоматично використовуватимуть ширше поле огляду.
Проте, якщо у вашу 3D-гру планується грати в портретному режимі, можливо, доцільніше використовувати натомість Keep Width (також називається Vert-). Таким чином, смартфони зі співвідношенням сторін вище 16:9 (наприклад, 19:9) використовуватимуть вище поле зору, що тут логічніше.
Різне масштабування 2D і 3D елементів за допомогою вікон перегляду
Використовуючи кілька вузлів Viewport, ви можете мати різні масштаби для різних елементів. Наприклад, ви можете використовувати це для візуалізації 3D-світу з низькою роздільною здатністю, зберігаючи при цьому 2D-елементи з початковою роздільною здатністю. Це може значно підвищити продуктивність, зберігаючи чіткість HUD та інших 2D-елементів.
Це робиться шляхом використання кореневого вузла Viewport лише для 2D-елементів, а потім створення вузла Viewport для відображення 3D-світу та його відображення за допомогою вузла SubViewportContainer або TextureRect. Фактично в остаточному проекті буде два вікна перегляду. Одним із переваг використання TextureRect над SubViewportContainer є те, що він дозволяє ввімкнути лінійну фільтрацію. Завдяки цьому масштабовані тривимірні екрани виглядають краще в багатьох випадках.
Приклади дивіться у демонстрації масштабування вікна 3D.