Почему есть или есть разница между указателем и вводом? - PullRequest
0 голосов
/ 23 апреля 2019

При преобразовании некоторого кода в новый MRTK RC1 я распознал две версии, например, событий Up и Down, как для ввода, так и для указателя.Теперь мне было интересно, какая разница?Почему эта разница?Нужно ли реализовывать и то, и другое, если я хочу, чтобы одно и то же приложение работало на рабочем столе (мышь использует версию Input) и устройства XR (версия указателя)?

1 Ответ

0 голосов
/ 25 апреля 2019

Отличный вопрос! Мое понимание разницы между InputUp / Down и PointerUp / Down заключается в том, откуда происходят события. Короче говоря, я бы рекомендовал прослушивать события указателя вместо необработанных входных событий. Вам не нужно слушать оба типа событий.

InputDown / Up против PointerDown / Up

InputUp / Down генерируется контроллерами. Например, если вы посмотрите на классы, которые вызывают MixedRealityInputSytem.RaiseOnInputDown, вы увидите следующий код, вызывающий RaiseOnInputDown:

GenericJoystickController.cs
WindowsMixedRealityController.cs
MouseController.cs

Другими словами, это «необработанные входы», которые представляют такие вещи, как «кнопка выбора была нажата на контроллере.

Напротив, OnPointerDown / Up вызываются указателями. Например, если вы ищете ссылку на MixedRealityInputSystem.RaisePointerDown, вы увидите следующие файлы:

GazeProvider.cs
BaseControllerPointer.cs
GGVPointer.cs
PokePointer.cs

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

Зачем слушать PointerDown / Up вместо InputDown / Up

Прослушивание указателя вниз и вверх от указателей позволит вам различать такие вещи, как ближнее и дальнее взаимодействие, поскольку вы можете посмотреть на указатель, отправивший событие, и проверить, реализует ли указатель IMixedRealityNearPointer.

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