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