Содержание
День 1: Создание приложения дополненной реальности для iOS с использованием Unity и ARKit
Цель этого руководства — помочь вам понять основы ARKit и дополненной реальности. Мы используем Unity — кроссплатформенный и просто потрясающий игровой движок для создания из приложения ARKit.
Когда в 2017 году компания Apple представила в массы через iOS 11 дополненную реальность в виде ARKit, это была крупнейшая в мире платформа с поддержкой дополненной реальности, которую поддерживали несколько миллионов iPhone и iPad. Возможности казались бесконечными, и теперь, спустя несколько лет, технология превратилась в очень стабильную платформу, и существует не менее ста миллионов устройств Apple, поддерживающих AR. Если вы заинтересованы в использовании возможностей дополненной реальности и создании приложений для iOS, то вы попали по адресу.
С помощью этого руководства вы изучите технологию, процесс и поймете, как ARKit работает на реальном устройстве, и как использовать обнаружение плоскостей для идентификации и отслеживания вертикальных и горизонтальных плоскостей. Мы перейдем к более сложным темам и создадим более сложные приложения по мере их прохождения, но сначала давайте разберемся с самыми основами, и это то, на что будет направлено это руководство.
Это часть 30-дневного спринта, в ходе которого мы пытаемся опубликовать 30 проектов за 30 дней, то есть создавать полноценные проекты с нуля. Дважды проверьте код, напишите учебник, а затем опубликуйте его. Если есть какие-либо опечатки, дайте нам знать, и я надеюсь, вам понравится этот урок и проект.
Это часть 30-дневного спринта, в ходе которого мы пытаемся опубликовать 30 проектов за 30 дней, то есть создавать полноценные проекты с нуля. Дважды проверьте код, напишите учебник, а затем опубликуйте его. Если есть какие-либо опечатки, дайте нам знать, и я надеюсь, вам понравится этот урок и проект.
Загрузите исходный код для этого проекта и получите обновления для будущих проектов
Мы никогда не будем спамить вас и не будем продавать ваши данные
Скачать исходный код
Закрыть
Предварительные условия
Я рекомендую вам иметь общее представление о Unity и разработке в целом.
Для запуска и тестирования нашего приложения ARKit нам потребуется устройство iOS, совместимое с ARKit, от iPhone 6s и выше. Если вы хотите продолжить, вам понадобится следующее.
- macOS Catalina
- Unity 2019.2.18f1
- Visual Studio для Mac
- Xcode 11.3
- Устройство iOS0036
После того, как вы загрузили Unity и другие инструменты, упомянутые выше, и у вас есть все, что нужно, мы можем погрузиться прямо сейчас.
Конечная цель будет достигнута
Наша цель будет состоять в том, чтобы создать и развернуть приложение AR на нашем устройстве iOS. Вот так будет выглядеть конечный результат.
Прежде чем мы начнем, давайте сделаем обычное и спросим Что такое AR?
В двух словах, дополненная реальность — это использование технологии для наложения любой визуальной или звуковой информации на реальный мир, каким мы его видим. Представьте стиль интерактивности «Железный человек».
Итак, Что такое ARKit?
ARKit — это высокоуровневая среда разработки дополненной реальности, которая использует вычислительную мощность высокоэффективных, но мощных устройств iOS и их камер, что позволяет разработчикам создавать приложения и возможности дополненной реальности.
Какое место в этом занимает Unity?
Unity — это кроссплатформенный игровой движок. Если вы играли в какую-либо игру на своем Android или iPhone, высока вероятность того, что она, вероятно, была создана с использованием Unity. Поскольку это игровой движок, его рабочий процесс ориентирован на 3D и интуитивно понятен (если вы работали с SceneKit на iOS, вы поймете, о чем я). Следовательно, это стало естественным выбором для Apple и было одним из первых, кто получил поддержку ARKit SDK. Если вы хотите узнать больше о Unity, есть много других отличных источников, но для этого руководства я предполагаю, что вы уже имеете базовое представление о Unity или, по крайней мере, ознакомились с тем, что предлагает Unity. Не волнуйтесь, если вы плохо разбираетесь в этом, так как я объясню все по ходу дела. 9
Используя Unity 2019.2.18f, создайте новый проект и назовите его по своему вкусу. Вам следует использовать Unity Hub, так как это значительно упрощает управление проектами. Как только Unity создаст новый проект и вы окажетесь в окне Unity по умолчанию, ваша основная платформа для приложения будет установлена на автономную работу. Нам нужно переключить его на iOS. Для этого с
Строка меню -> Файл -> Настройки сборки .
Появится новое окно. Слева будет список платформ для выбора. Выберите iOS и справа будет кнопка « Switch Platform ». Как только вы нажмете на нее, Unity перезагрузит проект для iOS, и это может занять пару секунд. Если у вас не установлена платформа iOS, ее можно будет установить после выбора платформы.
Далее мы добавим сцену, которую хотим включить в нашу сборку. Мы всегда можем добавить сцену позже, но мы можем сделать это прямо сейчас, поскольку Unity создает сцену по умолчанию под названием «Образец сцены», которую мы будем использовать в этом случае. В верхней части окна Build Settings вы увидите список сцен, который сейчас пуст, в разделе Scenes в Build . Нажмите кнопку Add Open Scenes , которая находится прямо под ней, чтобы открыть текущую SampleScene 9.0004 к нему.
Импорт SDK и инструментов
Когда ARKit был запущен, у него был отдельный SDK для Unity, который сейчас устарел. Теперь у нас есть кроссплатформенная оболочка дополненной реальности для работы с различными Core SDK, в данном случае ARKit — наш Core SDK.
AR Foundation предоставляет унифицированную систему и API для взаимодействия с нашим базовым механизмом дополненной реальности. Мы подробно рассмотрим AR Foundation в отдельном руководстве. Для наших текущих требований нам потребуется установить как AR Foundation, так и ARkit для нашего приложения. Мы будем работать в основном с AR Foundation, который затем сам будет взаимодействовать с ARKit. Поскольку у них есть собственная поддержка Unity, их установка очень проста, и их можно найти в разделе 9.0003 Менеджер пакетов .
Окно -> Диспетчер пакетов.
В строке поиска введите «ar Foundation», и он должен отобразить последний AR Foundation SDK, доступный для текущей версии Unity. Текущая используемая версия — 2.0.2. Выберите AR Foundation из списка и нажмите «Установить».
Теперь Unity начнет скачивать пакет и устанавливать его. Это может занять минуту или две, прежде чем он будет установлен и импортирован в наш проект.
Далее мы импортируем ARKit SDK. В том же окне Package Manager найдите ARkit. Он должен показать несколько результатов, но нас интересует плагин ARKit XR версии 2. 0.1, который я использую. Установите его, и Unity начнет скачивать и импортировать его в наш проект.
Это все, что нам нужно для создания нашей сцены дополненной реальности, чем мы и займемся дальше!
Создание камер дополненной реальности и объектов сеанса дополненной реальности
Unity по умолчанию создает для нас главную камеру в сцене. Хотя это можно использовать в качестве камеры AR, мы заменим ее установкой камеры AR Foundations. Тогда у нас будет гораздо больше контроля над нашим AR-опытом.
Вот как это работает на самом деле —
Когда мы хотим запустить какое-либо приложение дополненной реальности, оно в основном называется сеансом дополненной реальности, вся инициализация камеры, отслеживание и т. д. начинается с сеанса дополненной реальности. Используя AR Foundation, мы можем вручную запускать, приостанавливать или останавливать сеанс и делать многое другое, что мы увидим в последующих руководствах.
Удалить игровой объект MainCamera из окна Hierarchy .
Мы добавим камеру AR Foundation, щелкнув правой кнопкой мыши Иерархия окно -> XR -> Источник сеанса AR. Будет создан новый игровой объект, дочерним элементом которого будет игровой объект AR Camera. Это будет источником нашей сессии дополненной реальности.
Затем мы добавляем компонент AR Session в нашу сцену. Сначала мы создаем новый игровой объект, щелкнув правой кнопкой мыши Иерархия -> Создать пустой и переименовав созданный игровой объект в ARSession.
Выберите игровой объект ARSession и из Окно инспектора -> Добавить компонент — найдите AR Session и выберите его.
Создание объектов Raycasting и Plane Detection
Луч — это невидимая линия, исходящая из точки в заданном направлении. Raycasting — это концепция создания луча, который затем используется для проверки того, попал ли луч во что-нибудь. Эта информация полезна для определения того, попал ли луч в 3D-объект или 2D-элемент и т. д. В Unity raycasting также используется для взаимодействия с пользовательским интерфейсом с использованием графического компонента raycaster. Но для нашего приложения дополненной реальности мы будем использовать другой рейкастер, который называется 9.0003 AR Raycaster с использованием компонента AR Raycast Manager .
Мы добавим компонент AR Raycast Manager в наш AR Session Origin , так как для работы raycaster требуется камера AR и компоненты Session Origin. Выберите источник сеанса AR -> Добавить компонент -> AR Raycast Manager .
Наконец-то мы можем добраться до наших объектов обнаружения самолетов!
Плоские объекты обнаружения
Обнаружение плоскостей — это процесс обнаружения как вертикальных, так и горизонтальных плоскостей в нашей среде. Опять же, мы будем использовать AR Foundation для создания необходимых объектов, которые выполняют обнаружение плоскости в нашем приложении AR. Это достигается с помощью компонента AR Plane Manager , который добавляется к игровому объекту AR Session Origin.
Его можно настроить для обнаружения любого конкретного типа самолета, но теперь нам нужны все доступные типы, которые можно выбрать в Режим обнаружения поле компонента AR Plane Manager .
Нам нужен объект 3D Plane, чтобы показать, где была обнаружена плоскость. Мы можем либо создать собственную сетку для нашей плоскости, либо просто использовать готовую, что мы сейчас и сделаем. Щелкните правой кнопкой мыши Hierarchy -> XR -> AR Default Plane. Это создаст в сцене новый игровой объект AR Default Plane .
Далее, если мы хотим создать экземпляр этого самолета при обнаружении самолета, мы хотим, чтобы этот игровой объект был доступен для наших AR Управляющий самолетом. Обычно мы создаем префабы из игровых объектов, которые позволяют нам настраивать и хранить игровой объект. Чтобы создать префаб, создайте новую папку под названием Prefabs в окне проекта и просто перетащите в папку AR Default Plane . Игровой объект AR Default Plane теперь можно удалить из иерархии.
Теперь мы можем назначить префаб AR Default Plane нашему Plane Prefab полю AR Plane Manager компонент игрового объекта AR Session Origin, просто перетащив его в поле.
Вот и все! Теперь мы можем обнаруживать самолеты! Но подождите, сначала нам нужно собрать и развернуть следующее приложение.
Настройки проигрывателя
Чтобы создать приложение с помощью Unity, сначала нам нужно настроить некоторые свойства приложения, такие как название компании, имя пакета и т. д., в разделе «Настройки проигрывателя». Перейдите в -> Edit -> Project Settings -> Player в меню слева, чтобы открыть страницу PlayerSettings.
Введите название вашей компании и название продукта, которое будет названием приложения, которое будет отображаться на вашем устройстве iOS. Кроме того, введите идентификатор пакета, а затем версию и номер сборки, если хотите.
Нам также нужно добавить еще несколько свойств. Во-первых, давайте добавим Описание использования камеры — текст, который будет отображаться, когда пользователю будет предложено предоставить доступ к камере.
Затем установите Архитектура на ARM64.
Теперь мы можем создать наше приложение. Файл -> Настройки сборки и нажмите Build and Run . Это создает приложение, создает новый проект Xcode, открывает Xcode, запускает процесс сборки Xcode и развертывает приложение на подключенном устройстве iOS. Теперь вам нужно будет подключить ваш iPhone/iPad.
Unity попросит создать папку для хранения проекта Xcode. Выберите нужное место.
Теперь Unity начнет компилировать и создавать приложение. Это должно занять некоторое время, и после этого должен открыться Xcode.
Приступая к окончательной сборке, вам необходимо настроить профиль подготовки с помощью Xcode, который необходим для сборки приложения с помощью Xcode. Если это будет сделано, Xcode также должен автоматически запустить процесс сборки, установить приложение и запустить его.
Если вы еще этого не сделали, сборка Xcode завершится ошибкой.
Чтобы исправить это, нажмите представление папки проекта на панели навигации -> выберите Unity-iPhone -> выберите Подписание и возможности в главном окне.
Оттуда вы можете выбрать свой профиль обеспечения.
Наконец, выберите подключенное устройство и щелкните значок Play на панели инструментов Xcode, чтобы снова начать процесс сборки.
В случае успеха Xcode установит приложение на подключенное устройство и запустит его автоматически.
Вот и все!
Спасибо, что следите за нами. Если у вас есть какие-либо вопросы или мысли, прокомментируйте ниже.
Загрузите исходный код для этого проекта и получите обновления для будущих проектов
Мы никогда не будем спамить вас и не будем продавать ваши данные
Загрузить исходный код
Закрыть
Unity Technologies Поддерживает iOS 11 и ARKit
- Назад к новостям
Предоставляет лучший в своем классе опыт разработки надежному сообществу Unity.
САН-ФРАНЦИСКО, 21 сентября 2017 г. движок, который обеспечивает 2/3 всего игрового и интерактивного развлекательного контента виртуальной реальности (VR) и дополненной реальности (AR), объявил сегодня о поддержке iOS 11 и обеспечивает лучший в своем классе опыт разработки ARKit. Unity работала над тем, чтобы обеспечить поддержку новейших функций iOS 11 и ARKit, настраивая разработчиков на больший успех. ARKit теперь доступен сотням миллионов пользователей iPhone и iPad. С помощью ARKit разработчики Unity могут легко создавать возможности дополненной реальности для iPhone и iPad, а также добавлять дополненную реальность в существующие приложения, доступные в App Store.
«В Unity мы верим, что мир станет лучше, если в нем будет больше авторов, а запуск iOS 11 и ARKit означает, что еще больше людей смогут создавать и наслаждаться увлекательными и доступными приложениями дополненной реальности», — сказал Ральф Хауверт. , директор по развитию платформ Unity. «Поддержка новейших и лучших технологий гарантирует, что мы можем дать нашим создателям уверенность и инструменты для создания и масштабирования, а также легко публиковать практически на любой платформе».
Разработчики Unity создают иммерсивные приложения дополненной реальности с помощью подключаемого модуля Unity ARKit с июня 2017 года. Примеры приложений, созданных с помощью Unity и использующих ARKit, включают:
- Pokemon Go от Niantic — теперь дополнено ARKit, чтобы перенести покемонов из их чрезвычайно популярной мобильной игры в реальный мир.
- IKEA Place — накладывает мебель в комнату, позволяя пользователю визуализировать, как может выглядеть новая покупка.
- «Ходячие мертвецы: Наш мир» от Next Games — позволяет вам сражаться с ходячими в любом месте и в любое время всеми вашими любимыми персонажами из «Ходячих мертвецов» на канале AMC.
- MLB At Bat AR от MLB Advanced Media — зрители на бейсбольном матче могут навести iPhone на живое действие и увидеть статистику игрока на экране над реальными игроками.
- Warhammer 40,000: Freeblade от Pixel Toys — новый режим дополненной реальности позволит игрокам наблюдать за боем космического десантника прямо в своей гостиной.
- GNOG от KO_OP — веселая головоломка об исследовании чудовищных виртуальных игрушек.
- CurioPets — многопользовательская мобильная игра-симулятор домашних животных с дополненной реальностью, выпущенная сегодня для iPhone и iPad.
- Amon от Lykke Studios — только что анонсированная игра, рассказывающая об Амоне, боге воздуха, в его стремлении соединить мир загадочных оптических иллюзий.
- Мини-гольф Mammoth от Ezone.com — приносит дурацкий мир мини-гольфа на тему пещерного человека, где бы вы ни находились.
- АРКУА! Cabbibo — инструмент для создания аквариумов с дополненной реальностью.
Также были проведены некоторые интересные эксперименты ARKit с Unity, такие как AR-версия A-Ha «Take on Me» от TRIXI, которая по-новому оживляет знаменитый набросок музыкального видео. Празднование Anki 4 июля, созданное Wieden + Kennedy, демонстрирует воображение любимого робота Cozmo.
Чтобы узнать больше о том, как начать работу с подключаемым модулем ARKIT для Unity, прочитайте сообщение в блоге Unity iOS 11 и ARKit. Unity также планирует представить демо-контент ARKit на предстоящей конференции разработчиков Unite Austin, которая состоится 3–5 октября 2017 г. миллионами создателей. Unity используется более чем на 3 миллиардах устройств по всему миру и только в 2016 году была установлена более 16 миллиардов раз.
О компании Unity Technologies
Unity Technologies является создателем гибкой и высокопроизводительной сквозной платформы разработки, используемой для создания насыщенных интерактивных 2D-, 3D-, VR- и AR-игр и игр. Мощный графический движок Unity и полнофункциональный редактор служат основой для разработки красивых игр или приложений и легкого переноса их на различные платформы: мобильные устройства, домашние развлекательные системы, персональные компьютеры и встроенные системы. Unity также предлагает решения и услуги для создания игр, повышения производительности и взаимодействия с аудиторией, включая Unity Ads, Unity Analytics, Unity Asset Store, Unity Cloud Build, Unity Collaborate, Unity Connect и Unity Certification.