Новый InputController создается каждый раз при открытии меню Windows - PullRequest
0 голосов
/ 20 июня 2019

Я работаю над небольшим игровым проектом с использованием гарнитуры Windows Mixed Reality (Lenovo Explorer) и Unity. В настоящее время я использую последнюю версию MRTK v2.1.

Я использую пользовательский правый контроллер. Это сборный дом, в котором основной объект имеет следующие компоненты:

  1. скрипт mrtk's WindowsMixedRealityControllerVisualizer
  2. Скрипт контроллера ввода (используя IMixedRealityInputHandler) для управления вводом в действия (стрелять, прыгать и т. Д.)
  3. Пользовательский скрипт, имеющий дело с реальными действиями в мире виртуальной реальности.

Помимо компонента, у него есть дочерний объект, который является сборной трехмерной модели объекта, который я хочу визуализировать. Это у ребенка, поэтому я мог бы правильно разместить его с некоторым смещением. AFAIK это не проблема. Все это - собственный префаб, который я затем добавляю в свой пользовательский MixedRealityControllerVisualizationProfile под Global Right Hand Controller Model . В целом это работает так, как я этого хочу. Контроллер отображается правильно на моей правой руке, и входы ведут себя так, как я хотел.

Моя проблема заключается в том, что однажды в игре, когда я нажимаю кнопку Home (логотип windows), чтобы отобразить плавающее меню, один раз, когда я нажимаю второй раз, чтобы вернуться в игру, a новый контроллер появляется в 0,0,0 (или там, где моя рука находится в момент возвращения в игру); У меня все еще есть один на руке, и этот новый, он также реагирует на ввод так же, как и на моей руке. Если я снова открываю / закрываю кнопку «Домой», это повторяется, и я получаю несколько контроллеров. Поэтому, когда я стреляю , выстрел производится как из моей руки, так и из нового контроллера в 0,0,0 (или из того количества контроллеров, с которыми я к этому времени попал на сцену)

Я не думаю, что мой контроллер когда-либо теряет отслеживание, поэтому IDK почему mrtk создает новый. Я решил проверить наличие дополнительных объектов контроллера в сцене и удалять их вручную при каждом обновлении, но это звучит глупо, должна быть какая-то конфигурация, которая наверняка позаботится об этом, нет? Разве скрипт визуализатора не позаботится об этом?

Я смотрю в Интернете, но не нашел ничего конкретного по этому поводу. Любые подсказки будут приветствоваться.

1 Ответ

1 голос
/ 20 июня 2019

Это звучит как ошибка в MRTK. Я бы порекомендовал регистрировать и выпускать в репозитории github на https://github.com/microsoft/MixedRealityToolkit-Unity/issues

...