Interaktionsmodus-Manager — MRTK3

Übersicht

Ein Interaktionsmodus stellt eine Teilmenge von Interaktionsteilnehmern dar, die basierend auf kontextbezogenen Informationen zu dem, was der Benutzer tut, aktiviert werden soll. Ein Nahinteraktionsmodus kann zum Beispiel alle Ray-Interaktionsgeräte deaktivieren, während er die Verwendung von Greif- und Pokeinteraktionen erlaubt. Umgekehrt, wenn der Benutzer ein Objekt eingreift, möchten Sie möglicherweise einen Nahinteraktionsmodus eingeben, der den Touchinteraktionsmodus deaktiviert, wodurch versehentliche Touchaktivierungen verhindert werden, während sie das Objekt ergreift.

Beispiel für den Nahinteraktionsmodus

Der Interaktionsmodus-Manager vermittelt zwischen diesen Interaktionskontexten. Es basiert auf dem Modus-Interaktionsmodus-Detektor, um den besten Modus für den aktuellen Kontext zu bestimmen. Modusdetektoren, wie z. B. ProximityModeDetector, diktieren, welcher Modus für einen bestimmten Controller basierend auf beliebigen Bedingungen aktiv sein sollte. Entwickler können neue Möglichkeiten erstellen, um zwischen Interaktionskontexten zu disambiguieren, indem Sie sie implementieren IInteractionModeDetector.

Nahinteraktionsmoduserkennung in Aktion

Die Priorität jedes Modus wird durch die Reihenfolge im Interaktionsmodus-Manager bestimmt. Modi, die später in der Liste aufgeführt sind, haben höhere Priorität, wodurch sie in Fällen, in denen mehrere Interaktionskontexte gültig sein können, den dominanten Modus machen. Der Interaktionsmodus-Manager ermöglicht es dem Benutzer auch, einen Standardinteraktionsmodus anzugeben.

Priorität des Modus-Managers

Erkennungsmodule

Das MRTK enthält eine festgelegte IInteractionModeDetectors Implementierung, von der jede angibt, welche InteractionMode aktiviert oder deaktiviert werden soll.

Interaktionsdetektor

Aktiviert InteractionDetector oder deaktiviert den angegebenen Mauszeiger und die Auswahl von Interaktionsmodi, wenn einer der zugeordneten Interaktivatoren über einen gültigen Mauszeiger verfügt oder ein Ziel auswählt.

Näherungserkennung

Der ProximityDetector aktiviert oder deaktiviert den angegebenen Interaktionsmodus, wenn sich der Detektor in der Nähe des Colliders eines interagierbaren Elements befindet.

Nahinteraktionsmodus-Detektor

Der NearInteractionModeDetector aktiviert oder deaktiviert den angegebenen Interaktionsmodus, wenn sich der Detektor oder einer der zugeordneten Interaktivatoren in der Nähe des Colliders von am interactable befindet.