Эмулятор Daydream View Controller не будет работать с Google VR SDK 1.1 и Unity 5.6 beta для Linux

Я не могу заставить эмулятор контроллера работать с Google VR SDK 1.1 и Unity 5.6b3 в 64-разрядной версии Arch Linux. Если я загружаю сцену GVRDemo в Unit и нажимаю кнопку воспроизведения, чтобы войти в режим воспроизведения, консоль показывает следующее:

Android Debug Bridge (adb) команда не найдена. Убедитесь, что Android SDK установлен и каталог, содержащий adb включен в переменную окружения PATH."

В Windows вы должны добавить каталог, содержащий программу Android Debug Bridge (adb), в переменную среды PATH в самой Windows (не в программе Unity). После того, как вы это сделаете, эмулятор контроллера прекрасно работает в Windows. Вы должны сделать то же самое в Linux, очевидно, чтобы Unity обнаружила adb, и, следовательно, чтобы телефон Controller Emulator работал для тестирования игры.

Я добавил следующую строку в мои файлы.bashrc и.profile в моем домашнем каталоге:

"PATH = / дом / Jesse/Android/Sdk/ платформенные инструменты /:$PATH"

Это, однако, не решает проблему.

Я также добавил корневой каталог Android SDK в раздел "Настройки Unity"> "Внешние инструменты".

Я не знаю, как заставить Unity и Google VR SDK распознавать каталог, содержащий adb, для переменной среды PATH, которая необходима Unity для работы эмулятора контроллера.

Кто-нибудь еще имеет эту проблему? Есть ли исправление или обходной путь?

1 ответ

Я смог найти виновника и изменить скрипты Google VR SDK, чтобы он работал! Оказывается, в коде файла сценария под названием "EmulatorClientSocket.cs" была проблема, связанная с машинами, отличными от Windows. Вот что я изменил и почему:

Первоначально в строках 111 и 112 этого сценария было написано:

stringprocessFilename = "баш";

stringprocessArguments = string.Format ("-l -c \" {0} \ "", adbCommand);

Контекст заключается в том, что когда Windows отсутствует (простите за слова моего неспециалиста - я начал изучать кодирование только месяц назад), команда для обработки выглядит так: bash -l -c "adb forward tcp: 7003 tcp: 7003". Проблема заключается в том, что когда в команде используется опция -l, команда интерпретируется так, как будто она поступает из оболочки входа в систему, что, как я полагаю, означает, что bash не смотрит на переменные среды, установленные в пользовательском.bashrc и Файлы.profile в их домашнем каталоге. Не просматривая эти файлы, bash не может найти команду adb (попробуйте запустить вышеупомянутую команду bold в терминале, и в результате появится подсказка о том, что команда adb не найдена).

Чтобы исправить это, я просто удалил опцию -l из строки 112 и вуаля! Все работает как шарм! Строки 111 и 112 теперь выглядят так:

stringprocessFilename = "баш";

stringprocessArguments = string.Format ("-c \" {0} \ "", adbCommand);

Исправление будет работать при запуске "unity-editor" или "unity-editor-beta" из Терминала или Xterm, но запуск его из меню приложения все равно вызовет ошибку adb, и эмулятор контроллера не будет работать.

Другие вопросы по тегам