Как создать свое первое приложение HoloLens с помощью Unity

1656558977 kak sozdat svoe pervoe prilozhenie hololens s pomoshhyu unity

Макс Хаддлстон

0*LybjBzQe4KnxejOR
Microsoft HoloLens. Авторство изображения https://www.flickr.com/photos/jiff01/15867880743

HoloLens от Microsoft очень потрясающий. Этим летом меня познакомили с этим во время стажировки, и я с большим удовольствием развивался до этого.

Программы HoloLens создаются с помощью DirectX из C++ или Unity из C#. Я обнаружил, что в целом быстрее и легче запустить программу Unity.

В этой статье мы настроим Unity для разработки HoloLens, создадим интерактивный куб и развернем эмулятор HoloLens, чтобы вы могли видеть свое творение. Эта статья предназначена для начинающих в Unity, поэтому если у вас есть опыт работы с редактором, я рекомендую ознакомиться с учебниками Microsoft.

Предпосылки

  1. ПК с Windows 10 с обновлением в апреле 2018 года
  2. Эмулятор HoloLens, который вы можете скачать здесь
  3. Visual Studio 2017 – версия для сообщества в порядке
  4. Unity — убедитесь, что при добавлении компонента сценариев Windows .NET при установке
  5. HoloToolKit

Вы можете найти полный исходный код здесь.

Настройте

Откройте Unity. Если вы впервые используете редактор, вам будет предложено войти или зарегистрироваться. Я бы рекомендовал Unity Personal, если вы не планируете монетизировать свое приложение.

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

1*Nt1kDO3K0sfzQIOfT-gexw
Редактор Unity при первом запуске

Щелкните правой кнопкой мыши на папке Assets в нижнем левом углу. Перейдите к Import Package -> Custom Package и откройте файл HoloToolKit unity, который мы загрузили раньше. Появится всплывающее окно Unity, нажмите Все и импортируйте объекты.

Дальше мы создадим нашу сцену. Выберите «Файл» -> «Новая сцена» и сохраните ее как «Основная».

Unity нуждается в специальной конфигурации, чтобы создать проект для HoloLens. К счастью, у HoloToolKit есть вспомогательные скрипты, выполняющие эту конфигурацию за нас. На верхней панели инструментов выберите Набор инструментов смешанной реальности -> Настройка -> Применить параметры проекта смешанной реальности. Используйте значение по умолчанию. После завершения настройки примените настройку сцены смешанной реальности. Удалите объект Directional Light GameObject.

Прекрасно! Пока мы импортировали HoloToolKit и настроили Unity для разработки HoloLens. В следующем разделе я познакомлю вас с основами Unity, а затем мы получим куб для воспроизведения на экране.

Знакомство с редактором

Вот так должен выглядеть редактор сейчас. Обратите внимание на три ограниченных области:

1*-ilX9-KD5YD1BpmjBpHJVw

Красная область слева – это панель иерархии сцены. Здесь мы можем добавить новые Игровые объектыи получить обзор высокого уровня текущей программы. GameObject является базовым классом для всех сущностей Unity. Они могут быть физическим объектом, таким как куб, или набор сценариев, таких как Менеджер ввода в сцене.

Нижняя синяя область содержит меню ресурсов и консоль. Меню ресурсов — это то, как оно звучит — оно содержит сценарии C#, материалы, сборные элементы и сетки, необходимые для запуска программы.

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

Создание куба

Теперь мы получим наш первый GameObject для проигрывания на экране. На панели иерархии сцены щелкните правой кнопкой мыши и выберите 3D-объект -> Куб. В редакторе должен появиться куб.

Дважды щелкните Кубок на панели иерархии, а на правой панели инспектора измените позицию на (0,0,2). Установите масштаб (.25, .25, .25). Ваша панель инспектора должна выглядеть так:

1*KIYP5ws7ST6n_5thE7UmRg
Панель инспектора кубов

Хорошо! Давайте пройдемся по этапам сборки, чтобы мы могли увидеть наш куб в эмуляторе HoloLens.

В Unity выберите Файл->Параметры сборки. Должно появиться всплывающее окно сборки, поэтому нажмите кнопку сборки. В раскрывающемся окне папки создайте новую папку под названием App и выберите ее в качестве места назначения.

После завершения сборки откройте решение Visual Studio в папке App. Измените параметры настройки Release, x86 и нацелите эмулятор HoloLens. Ваша панель параметров должна выглядеть следующим образом:

1*EJuVLjAtgMeuaLT10oikxw
Параметры настройки эмулятора HoloLens

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

1*4vCqc5n03DuxLsuhK1_z_A
Куб в эмуляторе

Сделать куб интерактивным

Теперь, когда мы поняли, как получить куб в нашу программу, давайте заставим куб действительно что-нибудь делать. Когда мы смотрим на куб, он будет вращаться, а когда мы щелкаем по кубу, он увеличивается в размере.

Вернитесь в Unity и создайте новый сценарий на панели активов под названием InteractiveCube. Чтобы создать новый сценарий, щелкните правой кнопкой мыши на панели ресурсов и выберите Создать -> Скрипт C#.

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

1*dfj3gWXCP4EZOw8sxvUafA

Дважды щелкните сценарий на вкладке активов, и появится экземпляр Visual Studio.

Импорт HoloToolkit.Unity.InputModule в верхней части нашего сценария и заставьте InteractiveCube расширить IFocusable и IInputClickHandler. Наш код должен выглядеть так:

using HoloToolkit.Unity.InputModule;
public class InteractiveCube : MonoBehaviour, IFocusable, IInputClickHandler {...} 

Благодаря расширению интерфейсов IFocuable и IInputClickHandler, наш компонент сценария позволяет родительскому GameObject подписаться на события фокусировки и нажатия.

Давайте заставим куб вращаться, когда наш взгляд на него. IFocusable требует от нас реализации двух открытых методов void: OnFocusEnter и OnFocusExit. Создайте личное логическое поле и назовите его Rotating. Когда мы фокусируем куб, устанавливаем для него значение true, а когда фокус выходит, устанавливаем значение false. Наш код должен выглядеть так:

public bool Rotating;
public void OnFocusEnter(){    Rotating = true;}
public void OnFocusExit(){    Rotating = false;}

Мы выполним фактическую ротацию в Update(). Update() — это специальный метод Unity, вызываемый каждым кадром. Чтобы управлять скоростью вращения, добавьте общедоступное поле float под названием RotationSpeed. Любое публичное поле в компоненте можно настроить и инициализировать в редакторе Unity.

public float RotationSpeed;
void Update() {    if (Rotating)        transform.Rotate(Vector3.Up * Time.deltaTime            * RotationSpeed);}

В Unity преобразование используется для управления такими физическими атрибутами, как размер, вращение и положение GameObject. Мы вращаем родительский GameObject вокруг оси y со скоростью один градус в секунду, умноженный на скорость.

Чтобы куб реагировал на события клика, добавьте метод OnInputClicked, необходимый для IInputClickHandler. Создайте общедоступную переменную Vector3 под названием ScaleChange. В методе OnInputClicked мы увеличим масштаб куба с помощью ScaleChange.

public Vector3 ScaleChange;
public void OnInputClicked(InputClickedEventData eventData) {    transform.localScale += ScaleChange;}

Теперь, когда мы закончили со сценарием, вернитесь в Unity. Убедитесь, что выбран объект Cube, и установите для переменных Speed ​​и ScaleChange значения 50 и (.025, .025, .025) соответственно. Не стесняйтесь экспериментировать с разными значениями! Наш скрипт должен выглядеть так:

1*voFzBQvBaHVcBtmoYQv6zg

Прекрасно! Мы завершили работу над сценарием InteractiveCube. Создайте свое приложение из редактора Unity и запустите решение с Visual Studio.

Резюме

В этом пошаговом руководстве вы узнали, как настроить Unity для разработки HoloLens, создать интерактивный GameObject и запустить свою программу в эмуляторе.

Если вам нравится разработка HoloLens, я рекомендую ознакомиться с учебниками Microsoft Academy. Они подробно рассмотрят разные ключевые концепции HoloLens и помогут вам создать несколько достаточно крутых программ.

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

Добавить комментарий

Ваш адрес email не будет опубликован.