Я работаю над небольшим игровым проектом с использованием гарнитуры Windows Mixed Reality (Lenovo Explorer) и Unity. В настоящее время я использую последнюю версию MRTK v2.1.
Я использую пользовательский правый контроллер. Это сборный дом, в котором основной объект имеет следующие компоненты:
- скрипт mrtk's
WindowsMixedRealityControllerVisualizer
- Скрипт контроллера ввода (используя
IMixedRealityInputHandler
) для управления вводом в действия (стрелять, прыгать и т. Д.)
- Пользовательский скрипт, имеющий дело с реальными действиями в мире виртуальной реальности.
Помимо компонента, у него есть дочерний объект, который является сборной трехмерной модели объекта, который я хочу визуализировать. Это у ребенка, поэтому я мог бы правильно разместить его с некоторым смещением. AFAIK это не проблема. Все это - собственный префаб, который я затем добавляю в свой пользовательский MixedRealityControllerVisualizationProfile
под Global Right Hand Controller Model . В целом это работает так, как я этого хочу. Контроллер отображается правильно на моей правой руке, и входы ведут себя так, как я хотел.
Моя проблема заключается в том, что однажды в игре, когда я нажимаю кнопку Home (логотип windows), чтобы отобразить плавающее меню, один раз, когда я нажимаю второй раз, чтобы вернуться в игру, a новый контроллер появляется в 0,0,0 (или там, где моя рука находится в момент возвращения в игру); У меня все еще есть один на руке, и этот новый, он также реагирует на ввод так же, как и на моей руке. Если я снова открываю / закрываю кнопку «Домой», это повторяется, и я получаю несколько контроллеров. Поэтому, когда я стреляю , выстрел производится как из моей руки, так и из нового контроллера в 0,0,0 (или из того количества контроллеров, с которыми я к этому времени попал на сцену)
Я не думаю, что мой контроллер когда-либо теряет отслеживание, поэтому IDK почему mrtk создает новый. Я решил проверить наличие дополнительных объектов контроллера в сцене и удалять их вручную при каждом обновлении, но это звучит глупо, должна быть какая-то конфигурация, которая наверняка позаботится об этом, нет? Разве скрипт визуализатора не позаботится об этом?
Я смотрю в Интернете, но не нашел ничего конкретного по этому поводу. Любые подсказки будут приветствоваться.