Управление настольным приложением камеры с помощью гироскопа Android-смартфона

#unity3d #camera #gyroscope #osc

#unity3d #камера #гироскоп #osc

Вопрос:

Для проекта в моем университете мне нужно создать приложение Unity3D на моем ноутбуке, в котором камера стационарна и может управляться для вращения в любом направлении с помощью гироскопа моего смартфона Android (Nexus 5), по беспроводной сети или через USB-кабель.

Я рассмотрел возможность OSC или приложения Unity Remote 5, но до сих пор не нашел способа, который работает для получения этого результата.

Любая помощь или совет будут очень признательны — у меня пока нет большого опыта во всем этом.

Спасибо!

Ответ №1:

Если бы я собирался это сделать, я бы использовал UNET (Unitys, встроенный в многопользовательский сетевой API) и синхронизировал вращение по локальной сети.

На камере у меня было бы сетевое преобразование и скрипт для управления его вращением на основе ввода акселерометра.

Версия на телефоне будет иметь полномочия и синхронизировать ее вращение по сети с клиентом на ноутбуке.

Плюсы: беспроводной, быстрый (через Wi-Fi), для его работы требуется очень мало кода, в Интернете доступно множество документации.

Минусы: полностью зависит от вашей сетевой ситуации, вам придется делать много проб и ошибок, чтобы получить плавный опыт (не отрывистый), я думаю.

Что касается ввода наклона на устройстве, у Unity есть отличный учебник здесь: https://unity3d.com/learn/tutorials/topics/mobile-touch/accelerometer-input

Это довольно просто.

Звучит как забавный проект, удачи!

Ответ №2:

Это можно сделать с помощью кабеля, Wi-Fi, Bluetooth 2.0 или Bluetooth 4.0 (BLE). Я реализовал то, что вам нужно, в WiFi и Bluetooth 2.0 для моей текущей работы.

Довольно легко получить значения поворота и транслировать их с Android, но я не думаю, что вам нужно что-то делать, потому что вы можете просто использовать это! https://play.google.com/store/apps/details?id=de.lorenz_fenster.sensorstreamgpsamp;hl=en

Итак, вопрос в том, как вы получаете данные, которые он отправляет на стороне Unity. Ответ — класс UdpClient.

Если вам нужна большая надежность, потому что каждый второй студент в вашей библиотеке uni загружает Mr. Robot и вы получаете огромное отставание, тогда я могу рассказать вам, как реализовать то же самое в Bluetooth, что не является супер тривиальным, поскольку .NET 2.0 (который использует unity) не поддерживает библиотеки Bluetooth, но есть решения…

Комментарии:

1. Спасибо за ответ! И если бы я использовал кабель вместо Wi-Fi (в этом месте не будет сети),

2. как мне затем отправлять и получать значения поворота?