Есть ли разработчики, использующие класс Unity OVRInput для доступа к вторичному контроллеру Oculus?

Я пытаюсь использовать правильный (вторичный) контроллер в двух проектах единства. OVRInput автоматически заполняет имена объектов button и axis-n в MSVS2017 из классов OVR, но возвращаемые значения из правого (вторичного) контроллера всегда показывают false. Демонстрация Unity XRInputManager показывает результаты как от входов контроллера, так и от данных гарнитуры. Но это не использует OVRInput. Хотел бы использовать OVRInput, но не смог бы. Квест является довольно новым, поэтому все интернет-документы показывают только спецификации Go. Go имеет один контроллер. Я могу прочитать все кнопки с левого (основного) контроллера. Мой apk правильно отвечает на мой GO с единственным контроллером.

OVRInput.GetButton(OVRInput.RawButton.A,Rtouch) ;// reports false in the event of 'A' button press.

Как уже говорилось, я использую OVRInput, и он не сообщает о входах вторичного контроллера, хотя демонстрация диспетчера ввода Unity отображает. Менеджер ввода не использует утилиты OVR.

if (OVRInput.Get(OVRInput.Axis1D.SecondaryHandTrigger, OVRInput.Controller.RTouch) == 1) // reports false in the event of grip button press.

Ни устройство, ни программное обеспечение не сообщают об изменении оборудования. Должно быть правдой или ложью. В качестве примечания: ни один из входов не показывает какого-либо изменения значения от правого (вторичного) контроллера Oculus Quest. Я также сообщил об этом Окулусу.

0 ответов

Насколько я знаю, в Oculus-Quest используются контроллеры Oculus-Touch.

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

Это должно быть, например,

OVRInput.Get(OVRInput.RawButton.A, Controller.RTouch)

или также посмотрите пример:

// public variable that can be set to LTouch or RTouch in the Unity Inspector
public Controller controller;

// returns a float of the Hand Trigger’s current state on the Oculus Touch controller
// specified by the controller variable.
OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger, controller);

// returns true if the primary button (“A” or “X”) is pressed on the Oculus Touch controller
// specified by the controller variable.
OVRInput.Get(OVRInput.Button.One, controller);
Другие вопросы по тегам