Я создаю приложение, которое будет работать как на HoloLens, так и на мобильных устройствах (iOS / Android). Я хотел бы иметь возможность использовать одинаковые обработчики манипуляции на всех устройствах с целями:
- Использовать ARFoundation для отслеживания и ввода с мобильного устройства
- Используйте сенсорный ввод с MRTK с ManipulationHandler и в противном случае используйте сенсорный ввод как обычно (UI)
- Имитировать сенсорный ввод в редакторе (используя сенсорный экран или мышь), но сохраняйте контроллер клавиатуры / мыши для позиционирования камеры.
Пока я пробовал / нашел:
- MixedRealityPlayspace всегда является родителем камеры, поэтому я добавил ARSessionOrigin к этому компоненту и все компоненты AR по умолчанию для камеры (ARCameraManager, TrackedPoseDriver, ARRayCastManager и т. Д.)
- Настройка профиля указателя MRTK только для мыши MousePointer и TouchPointer.
- Удаление лишних поставщиков входных данных.
- Отключение имитации рук в службе InputSimulationService
Вообще говоря, метод добавления ARSessionOrigin в MixedRealityPlayspace работает должным образом, и установка ARFoundation тривиальна. Однако я пытаюсь понять, как заставить ManipulationHandler реагировать на сенсорный ввод.
Я столкнулся со следующими проблемами:
- Перетаскивание пальцем сенсорного экрана перемещает камеру (редактор). Отключение InputSimulationService исправляет это, но затем я не могу переместить камеру ...
- Даже при отключенной камере нажатие и перетаскивание не влияет на ManipulationHandler.
- Лучи отладки отрисовываются в правильном направлении, но лучи сенсорной точки по умолчанию рисуются в странных положениях.
Я приложил .gif, объясняющий это. Это использует сенсорный ввод в редакторе. Тот же эффект наблюдается при работе на устройстве (Android).
Это также относится к Unity UI (world space canvas), при котором нажатие на элемент пользовательского интерфейса не срабатывает (на устройстве или в редакторе), что наводит меня на мысль, что это проблема с указателем, а не проблема с обработчиком.
Буду признателен за несколько советов о том, как правильно настроить сенсорный ввод и ввод с помощью мыши как в редакторе, так и на устройстве, с целью получения видеосигнала от точки экрана с использованием матрицы проекции для создания указателя и использования двумя пальцами коснитесь так же, как два ручных луча.