Диспетчер режимов взаимодействия — MRTK3

Режим взаимодействия представляет подмножество объектов interactor, которые должны быть включены на основе контекстной информации о действиях пользователя. Например, режим близкого взаимодействия может отключить все лучи взаимодействия, разрешая при этом объекты interactor захвата и касания. И наоборот: когда пользователь захватывает объект, можно перейти в режим взаимодействия близкого захвата, в котором отключен объект interactor касания, чтобы исключить случайную активацию касанием при захвате объекта.

Sample Near Interaction Mode

Диспетчер режимов взаимодействия служит посредником между этими контекстами взаимодействия. Он использует детектор режима взаимодействия, определяющий оптимальный режим в текущем контексте. Детекторы режима, такие как ProximityModeDetector, определяют, какой режим должен быть активен для определенного контроллера с учетом того или иного произвольного условия. Разработчики могут создавать собственные методы идентификации контекстов взаимодействия, реализуя IInteractionModeDetector.

Near Interaction Mode Detector in Action

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

Mode Manager Priority