Quantcast
Channel: 平板电脑
Viewing all articles
Browse latest Browse all 500

Применение действия SendMessage из комплекта Unity* Toolkit с технологией Intel® RealSense™

$
0
0

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/.

Import the Visual Studio* Plugin (Optional)

Импорт пакета Unity* для технологии Intel® RealSense™

В этом пакете содержится все необходимое для настройки и запуска приложений Intel RealSense. Пакет Unity находится в папке RSSDK\Framework\Unity. Если вы устанавливаете Intel RealSense SDK в расположение по умолчанию, папка RSSDK будет создана в каталоге C:\Program Files (x86).Import the Unity* package for Intel® RealSense™ Technology

Импорт Unity Toolkit выполняется так же, как импорт любого другого пакета. В процессе импорта можно выбрать, какие компоненты вы хотите использовать. Для наших целей мы будем использовать все компоненты, устанавливаемые по умолчанию.

На следующем снимке экрана видно, что теперь в папке Assets появилось несколько новых папок.

  • В папках Plugins и Plugins.Managed находятся все библиотеки DLL, необходимые для использования Intel RealSense SDK.
  • Папка RSUnityToolkit содержит все сценарии и ресурсы, необходимые для работы с пакетом.

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

Assets RSUnityToolkit

Игровые объекты

Добавьте трехмерный куб к сцене.

Game Objects 3D cube

Добавьте Directional Light, чтобы осветить корабль и лучше видеть игровой объект. 

Game object directional light

Работа со сценарием

Чтобы убедиться, что действие SendMessageAction правильно применено к игровому объекту, необходимо сначала перетащить сценарий SendMessageAction на игровой объект. Затем необходимо создать новый сценарий, содержащий функцию, которая будет вызываться при запуске действия Intel RealSense SDK.

Создание новой папки и нового сценария

Чтобы не запутаться, я создал новую папку для собственного сценария. В этой папке я создал новый сценарий C# под названием MyRotateScript. В этом сценарии я задал функцию для вращения куба вдоль оси X с определенным интервалом.

MyCustomScripts MyRotateScript

Открытие сценария для редактирования

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

MyRotateScript editing

Затем добавьте в сценарий следующий код.

MyRotateScript Add Code

Каждый раз, когда вызывается эта функция, куб поворачивается на 30 градусов по каждой оси.

После сохранения сценария вернитесь в Unity и перетащите этот новый сценарий на ваш игровой объект — куб. Вам уже не потребуется редактировать этот сценарий в Inspector. Главное: не забудьте добавить сценарий к вашему игровому объекту. Сценарий SendMessageScript основан на том, что данный сценарий прикрепляется к одному и тому же игровому объекту.

Добавление сценария действия SendMessageAction

Перетащите сценарий SendMessageAction на куб.

SendMessageAction script

После этого в Inspector вы увидите два сценария: MyRotateScript, который мы только что создали, и сценарий SendMessageAction.

MyRotateScript SendMessageAction script

Настройка сценария действия Send Message для вызова сценария RotateMyCube()

Нажмите на кнопку Add Trigger и выберите Event Source.

RotateMyCube - Add Trigger - Event Source

Нажав на кнопку Event Source Add, я выбрал Hand Detected. Это, пожалуй, самый простой способ запустить эту функцию.

Send Message Action Script - Hand Detected

Далее выбираем функцию руки. Я выбрал правую руку. Это означает, что каждый раз, когда камера видит мою руку, она включает действие Send Message Action.

Send Message Action (Scrpt) - Access Order - Right Hands

В поле Function Name введите имя общедоступной функции RotateMyCube, которая расположена в созданном ранее классе MyRotateScript.

RotateMyCube - MyRotateScript

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

Поздравляю! Теперь все готово.

Сохраните сцену.

Сохраните проект.

И можно запускать только что созданное приложение!

 

  • Intel RealSense
  • unity
  • 开发人员
  • Microsoft Windows* 10
  • Microsoft Windows* 8.x
  • 英特尔® 实感™ 技术
  • Unity
  • 入门级
  • 中级
  • 英特尔® 实感™ 技术
  • 游戏开发
  • 笔记本电脑
  • 平板电脑
  • 桌面
  • URL
  • 英特尔® 实感™ 技术

  • Viewing all articles
    Browse latest Browse all 500

    Trending Articles



    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>