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.

Exemplo de modo de interação próxima

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.

Detector de Modo de Interação Próximo em Ação

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.

Prioridade do Gerenciador de Modo

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.