Оглавление:

Приложение дополненной реальности для начинающих: 8 шагов
Приложение дополненной реальности для начинающих: 8 шагов

Видео: Приложение дополненной реальности для начинающих: 8 шагов

Видео: Приложение дополненной реальности для начинающих: 8 шагов
Видео: Обзор разработки приложения с дополненной реальностью. Шаг за шагом. AR разработка "ArtTeam IT" 2024, Июль
Anonim
Приложение дополненной реальности для начинающих
Приложение дополненной реальности для начинающих
Приложение дополненной реальности для начинающих
Приложение дополненной реальности для начинающих

Из этого туториала Вы узнаете, как создать приложение дополненной реальности для начинающих. Мы будем использовать Unity3D и обнаружение наземной плоскости Vuforia, чтобы создать безмаркерное приложение AR для Android или IOS. Мы рассмотрим добавление 3D-модели в Unity и перемещение ее с помощью мобильного джойстика. Этот метод также будет работать с любой другой бесплатной 3D-моделью, которую вы можете найти.

Шаг 1. Будет ли это работать на вашем телефоне?

Будет ли это работать на вашем телефоне?
Будет ли это работать на вашем телефоне?

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

library.vuforia.com/articles/Solution/Vufo…

Единственное, что вам понадобится в качестве программного обеспечения, - это бесплатная версия Unity. Если у вас его еще нет, перейдите на Unity3d.com и нажмите «Получить Unity». Сейчас я использую версию 2018.2.0, если эта версия больше не доступна, перейдите к более старым версиям Unity и скачайте 2018.2.0.

Во время процесса установки обязательно установите пакеты для IOS или Android в зависимости от того, какой у вас телефон, и обязательно установите поддержку Vuforia.

Шаг 2: Начните новый проект Unity

Начать новый проект Unity
Начать новый проект Unity

Запустите новый проект Unity и удалите основную камеру. В верхней строке меню перейдите к игровому объекту, vuforia и добавьте «ARCamera».

Прежде чем что-либо заработает, нам нужно включить Vuforia, поэтому перейдите в настройки сборки файлов, переключите платформу, настройки XR и включите поддержку дополненной реальности Vuforia.

Щелкните игровой объект «ARCamera» и в инспекторе щелкните «Конфигурация Vuforia». Внизу включите отслеживание устройства и измените режим отслеживания на позиционный.

Добавьте уровень земли и искатель плоскости из того же меню Vuforia, из которого вы получили камеру.

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

Теперь нам нужно добавить джойстик, чтобы в верхнем меню перейти к ресурсам, импорту пакета, кросс-платформенному вводу.

В недавно добавленной стандартной папке с активами перейдите к префабам и перетащите в сцену сборный элемент управления с одним джойстиком для мобильных устройств.

Удалите кнопку перехода. Щелкните правой кнопкой мыши в иерархии и добавьте пользовательский интерфейс, систему событий.

Наконец, на корневом игровом объекте джойстика щелкните, чтобы добавить компонент, и добавьте средство масштабирования холста. Измените его раскрывающийся список, чтобы масштабировать его в соответствии с размером экрана. В скрипте «Джойстик» измените диапазон движения на 25.

Шаг 3: Создайте тумблер

Создайте Toggle
Создайте Toggle

Теперь поведение позиционирования содержимого по умолчанию - всякий раз, когда мы щелкаем по экрану, этап плоскости земли перемещается. Это включает в себя, когда мы нажимаем на объекты пользовательского интерфейса, такие как кнопки или джойстики, поэтому это не то, что мы хотим. Поскольку в настоящее время Vuforia не позволяет редактировать поведение позиционирования контента для исправления этой проблемы, мы могли бы либо написать собственное с нуля, либо для этого урока мы просто создадим переключатель, который включает или выключает эту функцию.

Щелкните правой кнопкой мыши джойстик и создайте пользовательский интерфейс, переключитесь. Раскройте все и измените цвета или текст, если хотите.

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

Шаг 4: МОНСТР

МОНСТР!
МОНСТР!

Перейдите в окно, общее и добавьте окно магазина активов.

Найдите «персонаж-монстр» и выполните сортировку по свободному запросу, возьмите первый результат и импортируйте его.

Перетащите сборный монстр под сцену заземления, сделав его ребенком. Установите его положение и вращение на ноль. Установите масштаб x y и z на.1.

Зайдите в аниматор и удалите все, кроме записи. Перетащите анимации ходьбы и простоя из папки анимаций монстра.

В разделе параметров нажмите кнопку «плюс» и добавьте два триггера «ходьба» и «холостой ход».

Щелкните каждую анимацию и добавьте переход к другой.

Щелкните каждый переход и добавьте условие, поставьте шаг для первого и неактивный для второго. Снимите флажок с временем выхода и перетащите все ползунки на 0 на каждом из них.

Теперь мы хотим, чтобы каждая анимация зацикливалась, поэтому щелкните каждую анимацию и перейдите к ее клипу. Нажмите «Изменить» на каждом из них и проверьте время цикла.

Шаг 5: Управление нашим характером

Контроль над нашим характером
Контроль над нашим характером

Щелкните правой кнопкой мыши папку с ресурсами и создайте сценарий C # под названием «CharacterController» и добавьте это:

using System. Collections;

using System. Collections. Generic; using UnityEngine; using UnityStandardAssets. CrossPlatformInput; открытый класс CharacterController: MonoBehaviour {частный константа скорость с плавающей запятой =.1f; приватный аниматор Animator; // Используйте это для инициализации void Start () {anim = GetComponent (); } // Обновление вызывается один раз за кадр void Update () {// перемещаем символ с джойстика input float x = CrossPlatformInputManager. GetAxis ("Horizontal"); float y = CrossPlatformInputManager. GetAxis («Вертикальный»); if (! x. Equals (0) &&! y. Equals (0)) {transform.eulerAngles = new Vector3 (transform.eulerAngles.x, Mathf. Atan2 (x, y) * Mathf. Rad2Deg, transform.eulerAngles.z); } if (! x. Equals (0) ||! y. Equals (0)) {transform.position + = transform.forward * Time.deltaTime * speed; anim. SetTrigger («прогулка»); } else {anim. SetTrigger ("простаивает"); }} public void PlaceCharacter () {transform.localPosition = Vector3.zero; }}

Шаг 6: Позвольте мне объяснить

Позволь мне объяснить
Позволь мне объяснить

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

Этот скрипт будет добавлен к нашему монстру, чтобы мы могли сделать что-то вроде «GetComponent ()», чтобы получить ссылку на этот аниматор монстров (таким образом мы можем воспроизводить анимацию из кода).

Затем мы получаем перемещение джойстика по осям x и y из кроссплатформенного диспетчера ввода и сохраняем их каждое в переменной.

Затем мы используем эти две переменные для поворота и перемещения монстра в соответствии с вводом джойстика.

Если монстр движется, мы проиграем анимацию ходьбы, а если он не движется, мы проиграем анимацию ожидания.

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

Шаг 7: Последние штрихи

Последние штрихи!
Последние штрихи!

Наконец, нам просто нужно добавить наш CharacterController.cs к нашему монстру. Итак, перейдите к корневому преобразованию префаба монстра в иерархии и щелкните по нему. Это подтянет его к инспектору справа. Щелкните добавить компонент и найдите сценарий контроллера персонажа. Добавьте это.

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

В инспекторе должен быть расширенный раздел, который можно щелкнуть, чтобы развернуть. Там есть событие Unity под названием «OnContentPlaced». Добавьте к этому функцию, нажав кнопку с плюсом. Перетащите монстра в пустой слот там, выберите сценарий контроллера персонажа и, наконец, выберите функцию «PlaceCharacter».

Шаг 8: Получим это на ваш телефон

Получим это на ваш телефон
Получим это на ваш телефон

Если вы используете Android или IOS, щелкните файл, настройте параметры сборки и перейдите в настройки проигрывателя для соответствующей платформы. В обоих случаях не забудьте указать что-нибудь для идентификатора пакета (в форме "com. YourName. YourAppName"). Также убедитесь, что у вас есть сообщение в поле описания использования камеры.

Если вы используете Android, снимите флажок «Совместимость с Android TV» и измените минимальную цель сборки на Nougat.

Либо нажмите build and run, либо нажмите build и установите.apk с помощью ADB или Android Studio.

Если вы используете IOS, нажмите build, а затем откройте полученную папку в XCode. Зарегистрируйтесь для получения бесплатной учетной записи разработчика Apple (если у нас ее еще нет) выберите свою команду и нажмите кнопку воспроизведения, чтобы получить ее на свой телефон!

Дайте мне знать в комментариях, если у вас есть вопросы!

Рекомендуемые: