Unity как настроить разрешение экрана

Обновлено: 05.07.2024

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

Потому что на рынке много производителей мобильных телефонов и существует множество разрешений экрана. Разрешение (разрешение экрана) - это точность изображения на экране, которая относится к количеству пикселей, которые может отображать дисплей. Единицы разрешения следующие: (точка на дюйм на Дюймы), lpi (количество строк на дюйм) и ppi (пикселей на дюйм). Чем выше разрешение изображения, тем больше пикселей оно содержит, тем четче изображение и лучше качество печати.

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

Прежде всего, мы сначала понимаем Canvas (На самом деле это экран поддерживаемого устройства, настройте Game Разрешение в обзоре регулируется Canvas , То есть выбрать поддерживаемый размер экрана устройства) : Точнее Canvas При условии схемы масштабирования, то Набор разрешений должен быть определен как разрешение нашего дизайна, а затем соответствующим образом масштабирован на разных мобильных телефонах, чтобы гарантировать, что эффективная область контента нашей игры может отображаться на экране.

  1. Схема адаптации экрана, предоставленная Unity
  1. expand:

Этот метод будет увеличивать масштаб с меньшими значениями ширины и высоты, которые необходимо увеличить, так что направление, в котором коэффициент масштабирования больше, будет иметь недостаточный коэффициент масштабирования и черные границы. Нет картины и нет правды, давайте посмотрим на реальную ситуацию. Сначала посмотрите на нормальное разрешение (750 * 1336):


На картинке показано разрешение дизайна, давайте посмотрим на результат отображения на планшете:


Как вы можете видеть на рисунке, тот, который требует меньшего коэффициента масштабирования, является высоким, но ширина имеет черные края с обеих сторон из-за недостаточного коэффициента масштабирования. Посмотрим на другую ситуацию:


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

Этот режим соответствует режиму расширения. Expand использует меньшую сторону увеличения для увеличения, а одна сторона не заполнена, в то время как сжатие использует относительно большую сторону для увеличения, в результате чего одна сторона будет уменьшена при слишком большом увеличении, см. Изображение


На картинке видно, что две стороны оригинального пользовательского интерфейса были отрезаны, что приводит к неполному отображению игрового контента. Давайте посмотрим на другую ситуацию, соответствующую расширению:


3、Match Width Or Height

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





  1. Какой метод использовать для экранной адаптации

Чтобы решить эту проблему, мы должны сначала подумать, какая часть нашей игры должна отображаться.Здесь мы представляем концепции эффективного игрового контента, фактического контента игры и недопустимого контента.


Из введения на приведенном выше рисунке мы видим, что после завершения разработки игры ее эффективное содержимое должно отображаться полностью независимо от того, какой мобильный телефон включен. Благодаря приведенному выше введению нескольких режимов мы можем обнаружить, что сжатие определенно обрезает игровой контент, а Match Width Or Height может также обрезать игровой контент.Только в режиме расширения будет отображаться весь контент, когда мы разрабатываем игру. , Итак, мы выбрали здесь расширенный режим для адаптации экрана.

Но теперь у меня есть другая проблема. В режиме расширения будут черные границы из-за недостаточного масштабирования в одном направлении. Здесь мы выбираем заполнение недопустимым содержимым. То есть границы с обеих сторон считаются недопустимым содержимым, как и на схематическом представлении. Если есть черные границы сверху и снизу, верхняя и нижняя границы будут обработаны. Этим достигается экранная адаптация. Наконец, взгляните на нормальную ситуацию отображения:




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

  1. Об особом отношении к Лю Хайпину
  1. Устройство Android

В Android API 28 добавлена ​​обработка Liu Haiping. При упаковке выберите 28 API.


Черная рамка на рисунке - это строка состояния, которая не была сохранена при создании снимка экрана.

Первоначальная идея состоит в том, чтобы определить, является ли это Лю Хайпин, и, если это Лю Хайпин, переместить содержимое игры вниз.

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

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


Для данного руководства о том “как это делается” мы решили использовать четыре разрешения экрана: Phone HD в портретной ориентации (640 x 960) и альбомной (960 x 640) и Phone SD также в портретной (320 x 480) и альбомной (480 x 320). Изначально компоновка была настроена под Phone HD портретную ориентацию и разрешение.

Using anchors to adapt to different aspect ratios

Элементы интерфейса по-умолчанию привязаны к центру родительского прямоугольника. Данное означает что они сохраняют постоянное смещение относительно центра.

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


Одним из способов сохранить расположение кнопок в области экрана является изменение компоновки таким образом, чтобы места их расположения были связаны с их соответствующими углами на экране. Привязка левой верхней кнопки может быть также установлена в левом верхнем углу при использовании в инспекторе выпадающего списка Anchors Preset (наборы привязок), или путём перетаскивания треугольных ручек привязок в видовом окне сцены (Scene View). Лучше сделать это пока текущее разрешение экрана, установленное в игровом режиме (Game View) является тем разрешением, для которого изначально всё и было задумано, где места расположения кнопок были бы подобраны более разумно и как говориться к месту.(Ознакомьтесь со страницей UI Basic Layout для получения более подробной информации по привязкам.). Так же например привязки для левой нижней и правой нижней кнопок могут быть выставлены в левый нижний и правый нижний угол соответственно.

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


Когда разрешение экрана изменяется на большее и меньшее относительно текущего, кнопки должны по прежнему сохранять своё изначальное расположение относительно углов, к которым они привязаны. Однако, сохраняя своё оригинальное разрешение, заданное в пикселях, они могут становиться как больше так и меньше, соответствуя пропорциям текущего разрешения экрана. Всё это может быть, а может и не быть желательно, в зависимости от того, как вы хотите, чтобы ваш интерфейс реагировал на смену разрешения экрана.


В данном руководстве о том “как это делается” мы уже знаем о том, что небольшая разрешающая способность портретной и альбомной ориентации Phone HD устройств не соответствует экранам, которые физически обладают меньшим по сравнению с ними размером, в то время как это самое соответствие больше выражается в плотности пикселей на 1 дюйм самого экрана. На этих экранах меньшей плотности кнопки не должны отображаться крупнее чем на экранах устройств с большей плотностью пикселей - они должны быть точно такого же размера, ни больше, не меньше.

Данное означает что кнопки должны становиться меньше настолько же, насколько в процентном соотношении становиться меньше сам экран. Другими словами, масштаб кнопок должен быть привязан к масштабу размеров экрана. Вот где может помочь компонент Reference Resolution

Масштабирование с компонентом Screen Size

Компонент Canvas Scaler может быть добавлен в корень Canvas - игровой объект (Game Object) со встроенным в него компонентом Canvas, все интерфейсные элементы которого являются его потомками. Он также создаётся по-умолчанию во время создания нового компонента Canvas через меню GameObject.

В компоненте Canvas Scaler вы можете установить его UI Scale Mode в Scale With Screen Size. В данном режиме масштабирования вы можете определить какое разрешение использовать в качестве базового. Если текущее разрешение больше или меньше базового, фактор масштабирования компонента Canvas устанавливается соответственно так, чтобы все элементы интерфейса масштабировались в большую или меньшую сторону вместе с разрешением экрана.

In our case, we set the Canvas Scaler to be the Phone HD portrait resolution of 640 x 960. Now, when setting the screen resolution to the Phone SD portrait resolution of 320 x 480, the entire layout is scaled down so it appears proportionally the same as in full resolution. Everything is scaled down: The button sizes, their distances to the edges of the screen, the button graphics, and the text elements. This means that the layout will appear the same in the Phone SD portrait resolution as in Phone HD portrait; only with a lower pixel density.


Чего стоит опасаться: так это того, что после добавления компонента Reference Resolution, важно также проверять как будет выглядеть компоновка с другими соотношениями сторон. Установив разрешение обратно в Phone HD альбомное, можно заметить как кнопки стали больше, чем должны быть (и для чего должны были быть использованы).


Причина, по которой кнопки при альбомном соотношении сторон становятся больше кроется в том, как работают настройки базового разрешения (Reference Resolution). По-умолчанию они сравнивают ширину текущего разрешения с шириной базового и как результат всё на экране масштабируется основываясь на коэффициенте масштабирования, получаемом из этой разницы. Если текущее альбомное разрешение равное 960 x 640 превосходит в 1.5 раза ширину портретного базового разрешения равного 640 x 960, то вся компоновка в целом будет увеличена в 1.5 раза.

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

Если свойство Match имеет значение не равное 0.5, оно будет сравнивать текущую ширину с базовой шириной, текущую высоту с базовой высотой, и выберет коэффициент масштаба близкий и к тому и к другому разрешению.

At this point the layout supports all the four screen resolutions using a combination of appropriate anchoring and the Canvas Scaler component on the Canvas.


Для более подробной информации о том, какими ещё способами можно добиться масштабирования элементов интерфейса относительно разных разрешений экрана, посетите страницу документации Canvas Scaler.

This page details the Player Settings specific to standalone platforms (Mac OSX, Windows and Linux). A description of the general Player Settings can be found here.

Resolution And Presentation

Свойство: Функция:
Override for Standalone Смотрите, может вам захочется назначить свои собственные иконки, которые будут использоваться в вашей игре под ПК. Иконки различных размеров должны заполнять квадратные рамки, расположенные ниже.

Splash Image


Свойство: Функция:
Config Dialog Banner Добавте ваше собственное изображение для отображения на экране во время загрузки игры.
Show Unity Splash Screen Shows the Made with Unity Splash screen when the game is loading .

Other Settings


Свойство: Функция:
Визуализация
Rendering Path Это свойство совместно используется содержимым Автономной сборки и Веб-плеером.
Vertex Lit Самая низкая точность отвещения, без поддержки теней. Лучше всего подходит для старых компьютеров или ограниченных мобильных платформ.
Forward with Shaders Хорошая поддержка возможностей освещения; ограниченная поддержка теней.
Deferred Lighting Best support for lighting and shadowing features, but requires certain level of hardware support. Best used if you have many realtime lights. (NOTE: If the camera’s projection mode is set to Orthographic, this value is overridden, and the camera will always use Forward rendering.)
Color Space Which color space should be used for rendering? The options are Gamma and Linear.
Auto Graphics API for Windows When this is checked your application will use the best Graphics API on the windows machine it runs on. When unchecked you are able to add and remove supported Graphics APIs
Auto Graphics API for Linux When this is checked your application will use the best Graphics API on the Linux machine it runs on. When unchecked you are able to add and remove supported Graphics APIs
Automatic Graphics API When enabled the game will find the most suitable Graphics Api to use. When Disabled it allows you to choose it for yourself.
Static Batching Set this to use Static batching (inactive by default in webplayers).
Dynamic Batching Set this to use Dynamic Batching on your build (activated by default).
GPU Skinning Should DX11/ES3 GPU skinning be enabled?
Stereoscopic Rendering Should stereoscopic rendering be enabled?
Virtual Reality Supported Enable this setting when building a Virtual Reality application. See VR Overview for more information.
Настройки
Scripting Backend Mono2x is the only scripting backend currently supported on Standalone.
Disable HW Statistics When checked the application will send information about the hardware to Unity (See hwstats page for more details).
Scripting Define Symbols Пользовательские флаги компиляции (обратитесь к странице [платформо-зависимая компиляция] для более подробной информации).
Оптимизация
API Compatibility Level Смотри ниже
.Net 2.0 Библиотеки .Net 2.0. Максимальная совместимость с .net, самый большой размер файлов
.Net 2.0 Subset Подмножество полной совместимости с .net, меньший размер файлов
Prebake Collision Meshes Should collision data be added to meshes at build time?
Preload Shaders Should shaders be loaded when the player starts up?
Preloaded Assets An array of assets to be loaded when the player starts up
Vertex Compression Vertex compression can be set per channel. You can for instance choose to have compression enabled for everything, except positions and lightmap UVs. Whole mesh compression set per imported object will overide the vertex compression on objects that have it set, everything else will obey the vertex compression options/channels set here.
Optimize Mesh Data Удаляет все данные из мешей, которые не требуются применённым к ним материалам (касательные, нормали, цвета, UV-координаты).

API Compatibility Level

Детали

Настройка вашего диалогового окна для выбора разрешения (Resolution Dialog)

Диалоговое окно Resolution Dialog отображаемое конечным пользователям

Диалоговое окно Resolution Dialog отображаемое конечным пользователям

В Standalone проигрывателе у вас есть возможность добавить своё баннерное изображение для диалогового окна Screen Resolution. Максимальный размер изображения равен 432 x 163 пикселям. Изображение не будет масштабировано до соответствия выделяемой области экрана. Вместо этого оно будет отцентрировано и обрезано.

Publishing to the Mac App Store

Use Player Log позволяет вести запись в лог файл вместе с отладочной информацией. Полезно в случаях, когда нужно разобраться в проблемах, которые возникают в вашей игре. При публикации игр для магазина Apple’s Mac приложений рекомендует отключать эту опцию, так как Apple может отклонить ваш запрос. См. для дополнительной информации по лог файлам эту страницу руководства.

Use Mac App Store Validation enables receipt validation for the Mac App Store. If this is enabled, your game will only run when it contains a valid receipt from the Mac App Store. Use this when submitting games to Apple for publishing on the App Store. This prevents people from running the game on any computer then the one it was purchased on. Note that this feature does not implement any strong copy protection. In particular, any potential crack against one Unity game would work against any other Unity content. For this reason, it is recommended that you implement your own receipt validation code on top of this using Unity’s plugin feature. However, since Apple requires plugin validation to initially happen before showing the screen setup dialog, you should still enable this check, or Apple might reject your submission.

Windows Store Apps

Настройки плеера

Настройки плеера

При создании решения в Visual Studio в первый раз, большинство этих настроек помещается в Package.appxmanifest.

Note: If you build your project on top of the existing one, Unity won’t overwrite Package.appxmanifest file if it’s already present, that means if you change something in Player Settings be sure to check Package.appxmanifest, if you want Package.appxmanifest to be regenerated, simply delete it, and rebuild your project from Unity.

Settings from Packaging, Application UI, Tile, Splash screen, Capabilities directly transfer to settings in Package.appxmanifest file.

Certificate

Каждому Windows Store приложению необходим сертификат, определяющий его разработчика. Если разработчик не предоставит свой сертификат, то Unity создаст для него стандартный.

Compilation

Когда Compilation Overrides установлен в:

Plugins

Необработанные плагины содержат список плагинов, которые были проигнорированы инструментами предварительной обработки Unity (как например SerializationWeaver, AssemblyPreprocessor, rrw), обычно вам не нужно вносить изменения в этот список, до тех пор пока вы не получите ошибку о том, что Unity не смог обработать ваш плагин.

Что произойдёт если вы добавите в этот список плагин?

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

Independent Input Source

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

Low Latency Presentation API

Let’s you enable Low Latency Presentation API, basically this create D3D11 swapchain with DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT flag, read more here and should increase input responsiveness. This option is disabled by default because on hardware with older GPU drivers, this option makes game laggy, if you enable this option - be sure to profile your game if the performance is still acceptable.

У меня есть 3D игра я хочу, чтобы в неё можно было играть чуть ли не на смарт часах и ТВ только вот проблема в том, что меня волнует вопрос нужно писать какой-то скрипт который бы подстраивал игру под разрешение экрана или сделать минимальное и unity сама подстроет под более высокие разрешения?

А вы в каком разрешении создаёте игры?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


Могут ли ДНФ и КНФ иметь одинаковый вид?
Доброго времени суток. Необходимо преобразовать формулу (X\/¬Y\/Z)(¬X¬Y¬Z) к ДНФ и КНФ.

Одинаковый BSOD на всех компах в сети
День добрый. Возникла следующая странная проблема. В сети 20 компов и 2 сервера. В течении этого.

Указать одинаковый размер шрифта во всех броузерах
Здравствуйте! У разных браузерах по умолчанию различный размер шрифта. Если в абзаце установить.

узнать как будет выглядеть твоя игра на другом разрешении очень просто - поменять разрешение в окне Game , в целом не важно качество разрешения (количество пикселей на сторону) - юнити настроит камеру одинаково для одинаковых соотношений сторон (для 3Д сцены), важно как раз таки само соотношение сторон Если у тебя интенфейс не подстраивается под новое разрешение, то есть не меняет своего размера а имеет фиксированный размер в пикселях, то это в настройках канваса, твоего интерфейса "Canvas Scaler", надо выбрать параметр Scale with screen size в UI scale mode. Если ты об этом конечно.
Потому что как правило разрешение про которое ты спрашиваеш может быть любым и как тебе уже ответили выше, тут важно именно соотношение сторон, обычно пользователь с более широким экраном видит больше чем пользователь квадратного, примерить на твою игру разные соотношения можно в окне Game. Мне нужно чтобы подстраивание для сцены а не для UI

Одинаковая верстка на всех устройствах
Добрый вечер, не давно зашел на сайт случайно ссылка И он на всех устройствах отображается один.

Периодически падает линк на всех устройствах
Имеем 3 устройства: 1.Роутер D-Link Dir-300(какой то там китайской модификации,3 месяца.

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

Читайте также: