Статья удалена
Небольшая заметка, которая будет особенно полезна начинающим разработчикам. Посмотрим на удобства, которые может предложить штатный симулятор, а также создадим свой девайс и добавим его в список устройств.
Документация: Device Simulator, Adding a device
Исходники: GitHub, Яндекс Диск, Google Drive
Разделы:
Далее любое упоминание проекта подразумевает сборку под Android/IOS.
Про Unity Simulator
Симулятор — одна из стандартных функций Unity про которую новички, обычно, узнают далеко не сразу. Зачастую это и вовсе происходит случайно, когда процесс разработки уже отлажен и разбираться с чем-то новым нет никакого желания: по этой причине многие задвигают фичу в долгий ящик и никогда больше не используют.
И зря, ведь она может существенно облегчить работу над проектом.
Несмотря на то, что основная цель симулятора — демонстрация того, как игра будет выглядеть на современных устройствах с учётом их разнообразных вырезов: чёлок, капель и прочего; его функционал этим не ограничивается.
Возможно, тебе уже доводилось костылями проверять локализацию в своей игре и пытаться понять, правильно ли её распознаёт целевое устройство? Или ты задумывался, как узнать реакцию билда на отсутствие интернета у игрока, не лишая рабочую машину доступа к сети?
Теперь эти вопросы тоже легко решаются!
Так что же симулируется?
- Экран устройства, вырезы на экране
- Язык по умолчанию
- Доступ к интернету (локальная сеть/оператор/без доступа)
Что не получится симулировать?
- Мультитач
- Работу гироскопа
- Характеристики устройства
- Директивы платформы (#IF UNITY_IOS/UNITY_ANDROID)
Начало работы
Сперва добавим симулятор, как одно из активных окон редактора. Для этого в верхнем меню идём по пути:
Window/General/Device Simulator
Альтернативный вариант: ПКМ по строке активных окон > Add Tab > Game и в открывшемся окне меняем Game на Simulator.
Теперь можно приступить к его освоению. Настроек не так много, поэтому быстро пробежимся по каждой.
Целевое устройство — выбираем аппарат, который нас интересует и идём дальше.
Scale — увеличить или уменьшить отображение.
FitToScreen — подогнать Scale по размеру экрана.
Rotate — повернуть устройство.
Safe Area — одна из функций, ради которой в принципе имеет смысл включать симулятор. Отрисовывает безопасную зону на экране с учётом особенностей выбранного устройства. Например, бывает очень полезно проверить как интерфейс будет смотреться на разных телефонах или прикинуть его границы заранее.
Play Mode — Focused/Unfocused. Выбираем первое, если хотим, чтобы при старте игра запускалась в окне симулятора; второе (по умолчанию) в окне Game.
Control Panel — полезность этой вкладки сложно переоценить. Она открывает панель настроек симулируемого устройства, в которой можно изменить язык системы и установить доступ к сети.
С настройками всё понятно, но как быть если желаемого аппарата нет в списке?
Во первых не переживать — парк устройств все равно достаточно обширный и охватывает почти все значимые модели, диагонали экрана и вырезы.
Если вопрос по симуляции конкретного отсутствующего телефона стоит остро, то волноваться тоже не стоит: добавить его не так сложно, благо Unity всегда открыт к изменениям и расширениям!
Создаём свой девайс
Мы попробуем добавить iPhone 14 Pro, которого нет по умолчанию даже с последним обновлением движка.
Каждое симулируемое устройство по сути состоит из двух частей:
файла с настройками Your Device.device и изображения Your Device_Overlay.png.
.device (Device Info Asset) — это JSON файл, который можно отредактировать в любом редакторе текста. Запишем его первые строки:
Начало положено. Теперь определим разрешение экрана, его ориентацию и отображение. Все параметры берём с сайта Apple: iPhone 14 Pro
Как пример добавим для экрана только портретную ориентацию. Но нет ничего сложного дописать в asset горизонтальную:
И наконец Presentation, на котором завершится наша работа с экраном (не считая создание изображения):
Теперь нужно разобраться с System Info:
Подробнее про GraphicsDependentData — это достаточно обширный пункт с множеством собственных настроек, на котором мне не хотелось бы надолго задерживаться, так-как это растянет статью раза в два.
Ничего сложного там нет, поэтому вы можете ознакомиться с документацией или изучить уже заполненный мною Asset в исходниках.
На этом с созданием ассета закончили и наконец можно приступить к творческой работе!
Unity без проблем скушает любое изображение в .png формате в качестве рамки нашего устройства, поэтому качаем из гугла приглянувшийся мокап телефона. И в принципе уже можно закидывать его в проект, предварительно сделав прозрачной область экрана и фон, но...
Как видим изображение достаточно сильно выбивается из списка стандартных девайсов Unity, которые абсолютно минималистичны.
Если это кажется мелочью — можете сразу переходить к финалу.
С остальными мы открываем любой редактор изображений. У меня это PaintDotNet. И приступаем:
- Копируем цвет у стандартного изображения устройства и обрисовываем им рамки и вырез мокапа, избавляясь от всех деталей.
2. Добавляем белую рамку по краям (для наглядности добавил ещё и тень). Она играет важную роль: во первых отделяет устройство и фон редактора, не давая им сливаться, а во вторых скрывает под собой углы экрана.
4. Восхищаемся проделанной работой!
Осталось лишь закинуть изображение в проект и дать ему название, которое указали в OverlayPath, после чего можно будет выбрать устройство в редакторе.
Спасибо, что ознакомились! Надеюсь вы нашли что-то новое и полезное для себя.