Можно ли форсировать использование InputSimulationService MRTK в сборке? - PullRequest
0 голосов
/ 14 июня 2019

Я работаю над многопользовательским приложением, основанным на MixedRealityToolkit v2. Чтобы протестировать сетевую систему, мне нужно сделать несколько сборок для запуска клиентов и сервера, и я хотел бы сделать это на одной машине без использования реального устройства (или эмулятора). Проблема заключается в том, что служба симуляции ввода работает только в редакторе Unity, что означает, что я не могу протестировать более одного клиента на одном компьютере; Более того, для использования реального устройства (гарнитуры HoloLens или Windows Mixed Reality) мне нужно создать приложение UWP, которое гораздо медленнее, чем создание для WindowsStandalone.

Есть ли способ заставить MRTKv2 использовать службу симуляции ввода в сборке (возможно, сборку WindowsStandalone)?

Заранее спасибо всем, кто постарается мне помочь!

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Я создал альтернативную службу имитации ввода для MixedRealityToolkit, которая пытается эмулировать систему VR.Этот сервис работает как в редакторе, так и в сборке Win32.

Так как это очень быстрая работа, она не без ошибок, но должна работать в целях тестирования.

https://github.com/DamianoOriti/MRTK-Custom-Input-Simulation-Service

0 голосов
/ 17 июня 2019

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

Как говорится, я вижу ценность использования этого в автономном режиме, как вы описываете. Я предпринял быструю попытку включить службу на всех платформах, что не так уж сложно (см. Ниже).

Основная функция showtopper заключается в том, что сочлененные позы рук загружаются из файлов JSON, поиск которых осуществляется с помощью утилиты MixedRealityToolkitFiles , которая работает только в сборках редактора. Без этого данные для анимации смоделированных рук отсутствуют.

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

  • Редактировать

    Assets\MixedRealityToolkit.Services\InputSimulation\MixedRealityToolkit.Services.InputSimulation.asmdef

    Удалить все записей в "includePlatforms". Это будет включать сборку симуляции ввода во всех сборках.

    • Перемещение Assets\MixedRealityToolkit.Services\InputSimulation\Editor\InputSimulationService.cs вниз на один уровень в Assets\MixedRealityToolkit.Services\InputSimulation\ (сборке Editor требуется специальный код UnityEditor).

    • Это, вероятно, нарушит запись службы в профиле. Выберите объект MixedRealityToolkit и перейдите к Ввод> Поставщики входных данных> Служба моделирования ввода в инспекторе. Затем нажмите кнопку «Попробуйте восстановить» или выберите правильный тип услуги вручную.

    • Установите Платформы для моделирования ввода на «Все», чтобы фактически включить службу на всех платформах.

На этом этапе имитация ввода все еще будет работать в редакторе, но при попытке его построения возникнет ошибка, что функция LoadGesturePoses не найдена. Эта функция в Assets/MixedRealityToolkit/Definitions/Utilities/ArticulatedHandPose.cs. Обратите внимание на раздел #if UNITY_EDITOR. Удаление #if приведет к тому, что не будет найден класс MixedRealityToolkitFiles, который также находится в сборке редактора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...