Gerenciador de modo de interação – MRTK3
Visão geral
Um modo de interação representa um subconjunto de interagentes que deve ser habilitado com base em informações contextuais sobre o que o usuário está fazendo. Por exemplo, um modo de interação próximo pode desabilitar todos os interagentes de raios, permitindo o uso de interagentes de captura e cutucação. Por outro lado, quando o usuário está pegando um objeto, talvez você queira entrar em um modo de interação de captura próximo, o que desabilita o interagente de toque, impedindo qualquer ativação de toque acidental ao capturar o objeto.
O Gerenciador do modo de interação faz a mediação entre esses contextos de interação. Ele depende do Detector de modo de interação para determinar o melhor modo para o contexto atual. Os detectores de modo, como o ProximityModeDetector
, ditam qual modo deve estar ativo para um determinado Controlador com base em qualquer condição. Os desenvolvedores podem criar novas maneiras de desambiguar entre contextos de interação implementando IInteractionModeDetector
.
A prioridade de cada modo é determinada pela ordem em que ele está listado no Gerenciador do modo de interação. Os modos listados posteriormente na lista têm maior prioridade, tornando-os o modo dominante nos casos em que vários contextos de interação podem ser válidos. O gerenciador do modo de interação também permite que o usuário especifique um modo de interação padrão.
Detectores
O MRTK contém uma implementação de conjunto IInteractionModeDetectors
, cada uma especificando qual InteractionMode
habilitar ou desabilitar.
Detector de Interação
O InteractionDetector
habilita ou desabilita o foco especificado e seleciona os modos de interação sempre que um dos interagentes associados tem um foco válido ou um destino de seleção.
Detector de Proximidade
O ProximityDetector
habilita ou desabilita o modo de interação especificado quando o detector está próximo ao colisor de um interacionável.
Detector de Modo de Interação Próximo
O NearInteractionModeDetector
habilita ou desabilita o modo de interação especificado quando o detector ou um dos interagentes associados está próximo ao colisor do am interactable.