Моделирование ввода было предназначено в первую очередь для редактора, в настоящее время его использование вне редактора не поддерживается.
Как говорится, я вижу ценность использования этого в автономном режиме, как вы описываете. Я предпринял быструю попытку включить службу на всех платформах, что не так уж сложно (см. Ниже).
Основная функция 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, который также находится в сборке редактора.