Unity Toolkit для технологии Intel® RealSense™ — это стандартный программный пакет Unity. Он содержит все библиотеки DLL и сценарии, необходимые для использования RealSense SDK при создании игр и приложений Unity. Этот пакет удобен в использовании благодаря возможности представлять свойства сценариев в Inspector без написания большого объема стандартного кода, требовавшегося в предыдущей версии Intel® Perceptual Computing SDK.
Цель
Цель данного учебного руководства — продемонстрировать, как можно применять действие SendMessage в Unity Toolkit. Действие SendMessage позволяет вызвать функцию из другого сценария в любой момент, когда запускается событие приложения Intel RealSense. Это очень полезно, если вы хотите использовать функции другого сценария, а не только те, что содержатся в имеющемся сценарии действий.
Тема учебного руководства
В этом учебном руководстве рассматриваются шаги, необходимые для применения действия SendMessageAction.
Предварительные условия
Необходимо прочесть файл sdktoolkit.pdf, который находится в папке \RSSDK\doc. В этом документе содержатся общие сведения о работе дополнения Unity. Мы также исходим из того, что вы имеете базовые навыки работы с Unity и умеете импортировать внешние пакеты, добавлять куб в сцену и применять сценарий к игровому объекту.
Требования
Unity Professional 4.1 или более новая версия.
Встроенная камера Intel® RealSense™ 3D или внешняя камера.
Начало
Импорт плагина Visual Studio* (необязательно)
Это необязательный шаг. В данном случае я предпочитаю использовать Visual Studio в качестве интегрированной среды разработки. Если вы хотите использовать этот бесплатный плагин, его можно загрузить на сайте http://unityvs.com/.
Импорт пакета Unity* для технологии Intel® RealSense™
В этом пакете содержится все необходимое для настройки и запуска приложений Intel RealSense. Пакет Unity находится в папке RSSDK\Framework\Unity. Если вы устанавливаете Intel RealSense SDK в расположение по умолчанию, папка RSSDK будет создана в каталоге C:\Program Files (x86).
Импорт Unity Toolkit выполняется так же, как импорт любого другого пакета. В процессе импорта можно выбрать, какие компоненты вы хотите использовать. Для наших целей мы будем использовать все компоненты, устанавливаемые по умолчанию.
На следующем снимке экрана видно, что теперь в папке Assets появилось несколько новых папок.
- В папках Plugins и Plugins.Managed находятся все библиотеки DLL, необходимые для использования Intel RealSense SDK.
- Папка RSUnityToolkit содержит все сценарии и ресурсы, необходимые для работы с пакетом.
Здесь мы не будем описывать содержимое всех папок, так как это не имеет отношения к теме учебного руководства.
Игровые объекты
Добавьте трехмерный куб к сцене.
Добавьте Directional Light, чтобы осветить корабль и лучше видеть игровой объект.
Работа со сценарием
Чтобы убедиться, что действие SendMessageAction правильно применено к игровому объекту, необходимо сначала перетащить сценарий SendMessageAction на игровой объект. Затем необходимо создать новый сценарий, содержащий функцию, которая будет вызываться при запуске действия Intel RealSense SDK.
Создание новой папки и нового сценария
Чтобы не запутаться, я создал новую папку для собственного сценария. В этой папке я создал новый сценарий C# под названием MyRotateScript. В этом сценарии я задал функцию для вращения куба вдоль оси X с определенным интервалом.
Открытие сценария для редактирования
Удалите все существующие функции, так как они вам не понадобятся. Ваш сценарий должен выглядеть следующим образом.
Затем добавьте в сценарий следующий код.
Каждый раз, когда вызывается эта функция, куб поворачивается на 30 градусов по каждой оси.
После сохранения сценария вернитесь в Unity и перетащите этот новый сценарий на ваш игровой объект — куб. Вам уже не потребуется редактировать этот сценарий в Inspector. Главное: не забудьте добавить сценарий к вашему игровому объекту. Сценарий SendMessageScript основан на том, что данный сценарий прикрепляется к одному и тому же игровому объекту.
Добавление сценария действия SendMessageAction
Перетащите сценарий SendMessageAction на куб.
После этого в Inspector вы увидите два сценария: MyRotateScript, который мы только что создали, и сценарий SendMessageAction.
Настройка сценария действия Send Message для вызова сценария RotateMyCube()
Нажмите на кнопку Add Trigger и выберите Event Source.
Нажав на кнопку Event Source Add, я выбрал Hand Detected. Это, пожалуй, самый простой способ запустить эту функцию.
Далее выбираем функцию руки. Я выбрал правую руку. Это означает, что каждый раз, когда камера видит мою руку, она включает действие Send Message Action.
В поле Function Name введите имя общедоступной функции RotateMyCube, которая расположена в созданном ранее классе MyRotateScript.
Необходимо отметить, что событие запускается только тогда, когда SDK обнаруживает вашу руку, и при этом отправляется только одно сообщение. Поэтому, чтобы заставить куб повернуться еще раз, нужно убрать руку из поля зрения камеры и вернуть ее обратно.
Поздравляю! Теперь все готово.
Сохраните сцену.
Сохраните проект.
И можно запускать только что созданное приложение!