Invoeracties — MRTK2
Invoeracties zijn abstracties van onbewerkte invoer die bedoeld zijn om toepassingslogica te isoleren van de specifieke invoerbronnen die een invoer produceren. Het kan bijvoorbeeld handig zijn om een actie Selecteren te definiëren en deze toe te wijzen aan de linkermuisknop, een knop in een gamepad en een trigger in een 6 DOF-controller. Vervolgens kunt u uw toepassingslogica laten luisteren naar invoeractie-gebeurtenissen selecteren in plaats van op de hoogte te zijn van alle verschillende invoer die deze kan produceren.
Een invoeractie maken
Invoeracties worden geconfigureerd in het profiel Invoeracties, in het invoersysteemprofiel in het onderdeel Mixed Reality Toolkit, waarbij een naam voor de actie wordt opgegeven en het type invoer (asbeperking) waaraan deze kan worden toegewezen:
Dit zijn de meest gebruikte waarden voor asbeperking:
Asbeperking | Beschrijving |
---|---|
Digitaal | Aan/uit-invoer, zoals een binaire knop in een gamepad of muis. |
Eén as | Analoge invoer met één as, zoals een analoge trigger in een gamepad. |
Dubbele as | Dubbele as analoge invoer als een duimstick. |
Zes dof | 3D-pose met vertaling en rotatie zoals die geproduceerd door 6 DOF-controllers. |
U vindt de volledige lijst in AxisType
.
Invoer toewijzen aan acties
De manier waarop u een invoer en actie toewijst, is afhankelijk van het type invoerbron:
Controllerinvoer
Ga naar het invoertoewijzingsprofiel controller onder invoersysteemprofiel. Hier vindt u een lijst met alle ondersteunde controllers:
Selecteer het item dat u wilt configureren en er wordt een dialoogvenster weergegeven met alle controllerinvoer, waarin u een actie voor elk van deze items kunt instellen:
Spraakinvoer
In het spraakopdrachtprofiel, onder het invoersysteemprofiel, vindt u de lijst met momenteel gedefinieerde spraakopdrachten. Als u een actie wilt toewijzen aan een actie, selecteert u deze in de vervolgkeuzelijst Actie .
Invoer van bewegingen
Het gestures-profiel, onder het invoersysteemprofiel, bevat alle gedefinieerde bewegingen. U kunt ze allemaal toewijzen aan een actie door deze te selecteren in de vervolgkeuzelijst Actie .
Invoeracties verwerken
Waarschuwing
Momenteel kunnen alleen invoeracties van het type Digitaal worden verwerkt met behulp van de methoden die in deze sectie worden beschreven. Voor andere actietypen moet u in plaats daarvan rechtstreeks de gebeurtenissen voor de bijbehorende invoer verwerken. Als u bijvoorbeeld een actie van 6 DOF wilt afhandelen die is toegewezen aan controllerinvoer, moet u gebruiken IMixedRealityGestureHandler<T>
met T = MixedRealityPose
.
De eenvoudigste manier om invoeracties af te handelen, is door gebruik te maken van het InputActionHandler
script. Hiermee kunt u de actie definiëren waarnaar u wilt luisteren en reageren op acties die zijn gestart en beëindigd met behulp van Unity-gebeurtenissen.
Als u meer controle wilt, kunt u de IMixedRealityInputActionHandler
interface rechtstreeks in uw script implementeren. Zie de sectie Invoer gebeurtenissen voor meer informatie over het verwerken van gebeurtenissen via handler-interfaces.
Voorbeelden
Zie MRTK/Examples/Demos/Input/Scenes/InputActions
voor een voorbeeldscène die laat zien hoe u een actie maakt, deze toe te wijzen aan controller- en spraak- en gebareninvoer en deze te gebruiken om een object te draaien in opdracht.