У меня есть игра Unity, которая работает на Android Cardboard и Oculus Go. Я пытаюсь определить, подключен ли контроллер Go.
Я импортировал пакет интеграции Oculus из хранилища ресурсов Unity (хотя я не уверен, что это действительно необходимо ... У меня сложилось впечатление, что поддержка Oculus встроена в Unity по крайней мере с 2018.3, если не с 2018.2 или ранее). Я также удалил Картон и добавил Oculus в качестве SDK для виртуальной реальности в настройках проигрывателя.
Следующий код выполняется в методе Start (), который инициализирует большую часть моей игры:
void Start() {
// ...
if (OVRInput.IsControllerConnected(OVRInput.Controller.RTrackedRemote)) {
// do something visible
}
// ...
}
Проблема в том, что OVRInput.IsControllerConnected (...) всегда возвращает false , а код внутри блока никогда не выполняется.
Другие вещи, которые я пробовал:
Перенес вызов в OVRInput.IsControllerConnected () из Start () в Update (), на случай, если это проблема времени инициализации. Нет успеха Тот же результат.
Вместо того, чтобы использовать OVRInput.Controller.RTrackedRemote в качестве аргумента, я попробовал другие объекты ... LTrackedRemote, Active, All, Gamepad, LTouch, RTouch, Remote, Touch, Touchpad и None. Все они, кроме «.None», вернули false. «.None» вернул true.
Я установил точку останова в строке, вызывающей OVRInput.IsControllerConnected () (после перемещения его в Update ()), затем вызвал OVRInput.GetConnectedControllers () в непосредственном окне VS2017 ... он возвратил «Нет». То же самое для OVRInput.GetActiveController ().
Сама игра началась как Android Cardboard. Пока что единственные важные изменения, которые я внес в это:
Импорт библиотеки поддержки Oculus из хранилища активов Unity.
В Player -> XR Settings я удалил «Картон» и добавил «Oculus» в качестве VR SDK
В настройках сборки я изменил метод сборки с «Gradle» на «Внутренний» (сборка Gradle не удалась ... Я видел сообщения от лета 2018 года, в которых говорилось, что это ошибка Unity, но я не уверен будь то текущая информация ... независимо от того, что переход от Gradle к внутреннему сделал ошибку THAT исчезнет).
В частности, я НЕ добавил никаких префабов, специфичных для Oculus, или изменил / удалил любые префабы, специфичные для GoogleVR.