Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

iOS Сценарии

Большинство функций устройств iOS доступны через классы Input и Handheld. Для кроссплатформенных проектов классы UNITY_IPHONE определены для условной компиляции iOS-специфического C# кода.

Свойства устройства

Существует ряд свойств устройств, к которым можно получить доступ. См. справочные страницы скриптов для:

Проверка на пиратство

Обычным способом взлома приложения является удаление защиты AppStore DRM и затем перераспространение его бесплатно. Используйте анти-пиратскую проверку Unity, чтобы узнать, было ли ваше приложение изменено после того, как оно было представлено AppStore.

Проверьте, является ли ваше приложение подлинным (не взломанным) с помощью свойства Application.genuine. Если свойство возвращает false, вы можете предупредить пользователей о том, что они используют взломанное приложение, или отключить некоторые функции.

Примечание: Используйте Application.genuineCheckAvailable вместе с Application.genuine для проверки целостности приложения. Поскольку доступ к свойству Application.genuine является ресурсоемкой операцией, ее не следует выполнять во время обновления кадров или выполнения другого критически важного кода.

Поддержка вибрации

Вы можете вызвать вибрацию, вызвав Handheld.Vibrate. Устройства без оборудования вибрации игнорируют этот вызов.

Показатель деятельности

Мобильные операционные системы имеют встроенные индикаторы активности, которые можно использовать во время медленных операций. Примеры см. в документации Handheld.StartActivityIndicator docs.

Ориентация экрана

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

Чтобы получить информацию об ориентации устройства, воспользуйтесь свойством Screen.orientation. Ориентация может быть одной из следующих:

Ориентация Поведение
Портрет Устройство находится в портретном режиме, с устройством, держащимся вертикально, и кнопкой дома внизу.
PortraitUpsideDown Устройство находится в портретном режиме, но вверх дном, с устройством, держащимся вертикально, и кнопкой дома вверху.
LandscapeLeft Устройство находится в горизонтальном режиме, с устройством, держащимся вертикально, и кнопкой дома на правой стороне.
LandscapeRight Устройство находится в горизонтальном режиме, с устройством, держащимся вертикально, и кнопкой дома с левой стороны.

Установите Screen.orientation на одну из вышеуказанных ориентаций или используйте ScreenOrientation.AutoRotation для управления ориентацией экрана. Когда вы включаете автоматическое вращение, вы все еще можете отключить некоторые ориентации в каждом отдельном случае.

Дополнительные сведения см. в следующей документации API:

Ориентация экрана приложения может меняться в зависимости от ориентации устройства, установленной пользователем, независимо от параметра ориентации по умолчанию приложения.

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

Ориентация экрана по умолчанию: Автоповорот Ориентация экрана по умолчанию: Портрет Ориентация экрана по умолчанию: Горизонтальная
Ориентация устройства: Автоповорот Экран приложения загружается в портретном режиме и может поворачиваться между портретной, горизонтальной правой и горизонтальной левой ориентациями (исключая портретную ориентацию вверх ногами).
Примечание: На iPad экран приложения загружается в портретной или горизонтальной ориентации в зависимости от ориентации устройства. Экран может поворачиваться между портретной, горизонтальной правой и горизонтальной левой ориентациями.
Экран приложения загружается и остается заблокированным в портретной ориентации. Хотя портретная ориентация вверх ногами разрешена, экран не поворачивается в эту ориентацию.
Примечание: На iPad экран приложения загружается в портретном режиме и может поворачиваться между портретной и портретной ориентациями вверх ногами. Экран запуска может загружаться в горизонтальной ориентации, если при запуске устройства ориентация устройства является горизонтальной.
Экран загрузки загружается в той же ориентации, что и устройство. Экран приложения загружается в горизонтальном режиме при загрузке сцены и может поворачиваться между горизонтальной левой и горизонтальной правой ориентациями.
Примечание: На iPad экран приложения загружается в горизонтальном режиме и может поворачиваться между горизонтальной левой и горизонтальной правой ориентациями. Экран загрузки может загружаться в портретном режиме, если при запуске устройство ориентировано в портретном режиме.
Ориентация устройства: Портретный замок Экран приложения загружается и остается заблокированным в портретной ориентации.
Примечание: В портретной ориентации, если вы установите свойство ScreenOrientation.AutoRotation для portrait в false, экран приложения поворачивается в горизонтальную ориентацию. Если вы теперь установите свойство ScreenOrientation.AutoRotation для landscape в false, ориентация экрана остается неизменной.
Экран приложения загружается и остается заблокированным в портретной ориентации. Запусковой экран загружается в портретной ориентации, но экран приложения загружается в горизонтальной ориентации при загрузке сцены. По умолчанию экран приложения остается заблокированным в горизонтальной левой ориентации.
Примечание: На iPad запусковой экран загружается в портретной ориентации, а сцена загружается в горизонтальной ориентации. Экран приложения остается заблокированным в горизонтальной ориентации.
Ориентация устройства: Горизонтальная блокировка Неприменимо, так как iPhones не имеет настройки блокировки горизонтальной ориентации. Если пользователь отключит настройку автоматического поворота устройства, когда приложение находится в горизонтальной ориентации, экран приложения поворачивается и остается заблокированным в портретной ориентации.
Примечание: На iPad приложение загружается и остается заблокированным в горизонтальной ориентации.
Неприменимо, так как iPhones не имеет настройки блокировки горизонтальной ориентации. Приложение остается заблокированным в портретной ориентации.
Примечание: На iPad стартовый экран загружается в горизонтальной ориентации, а сцена загружается в портретной ориентации. Экран приложения остается заблокированным в портретной ориентации.
Неприменимо как iPhones не имеют настройки блокировки горизонтальной. Экран приложения загружается в горизонтальном положении и может оставаться заблокированным как в горизонтальной левой, так и в горизонтальной правой ориентации при загрузке приложения.
Примечание: На iPad, экран приложения загружается в горизонтальном положении и остается заблокированным в горизонтальной левой или горизонтальной правой ориентации в зависимости от ориентации устройства.

iPad многозадачность режимов

iPadOS поддерживает режимы многозадачности, которые позволяют пользователям запускать несколько приложений одновременно. Доступные режимы зависят от версии iPadOS:

iPadOS версия Доступные режимы
iPadOS 9 — 15 лет Разделенный вид, слайд-шоу
iPadOS 16 — 18 лет Split View, Slide Over, менеджер сцены
iPadOS 26 и позднее Полноэкранные приложения, окна приложений, Stage Manager

В режимах Split View, Slide Over, Stage Manager и Windowed Apps ваше приложение работает вместе с другими приложениями в общем или изменяемом пространстве.

Экран API поведение

Когда приложение запускается в многозадачном режиме, применяются следующие поведения:

  • Screen.width и Screen.height обновляются при изменении размера окна или раздела.
  • Screen.safeArea настраивается в соответствии с доступной безопасной зоной.
  • Screen.fullScreen возвращает false, когда приложение не занимает весь экран.

Примечание: Ваше приложение не может контролировать размер окна. Размеры окна определяются пользователем и операционной системой.

Приложения с блокировкой ориентации

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

  • Окно приложения поддерживает правильное соотношение сторон для заблокированной ориентации.
  • Screen.orientation продолжает сообщать о заблокированной ориентации.

Если ориентация устройства отличается от заблокированной ориентации приложения (например, приложение, работающее только в портретном режиме, на устройстве в горизонтальном режиме), то приложение будет отображаться в формате letterbox.

Определение поколения устройства

Различные поколения устройств имеют разную производительность и поддерживают разные функции. Используйте свойство iOS.DeviceGeneration для запроса поколения устройства.

Дисплей вырез

На некоторых дисплеях некоторые области экрана могут быть затемнены или нефункциональны из-за другого оборудования, занимающего это пространство. Используйте Screen.cutouts для возврата списка границ, окружающих каждую вырезку.

Устройства iOS не предоставляют нативного API для получения информации об отрезке дисплея, поэтому отрезки жестко кодируются в проекте Xcode для каждого доступного устройства iOS. Вы можете изменить существующие данные или добавить дополнительные устройства в функции ReportSafeAreaChangeForView проекта Xcode Unity, которая находится в файле UnityView.mm.

Запись повтора игры

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