Delen via


Handleiding voor invoeroverdracht voor Unity

U kunt uw invoerlogica naar Windows Mixed Reality overzetten met behulp van een van de volgende twee methoden:

General Input.GetButton en Input.GetAxis API's

Unity gebruikt momenteel de algemene Input.GetButton en Input.GetAxis API's om invoer beschikbaar te maken voor de Oculus SDK en de OpenVR SDK. Als uw apps deze API's al gebruiken voor invoer, zijn deze API's de eenvoudigste manier om bewegingscontrollers in Windows Mixed Reality te ondersteunen. U hoeft alleen knoppen en assen opnieuw toe te kennen in Invoerbeheer.

Zie de tabel Unity-knop/astoewijzing en het overzicht van de Common Unity-API's voor meer informatie.

Belangrijk

Als u HP Reverb G2-controllers gebruikt, raadpleegt u HP Reverb G2-controllers in Unity voor verdere instructies voor invoertoewijzing.

XR-invoer-API's

Unity-releases hebben de XR geleidelijk beëindigd. WSA-API's ten gunste van de XR SDK. Voor nieuwe projecten kunt u het beste de XR-invoer-API's vanaf het begin gebruiken. Zie Unity XR Input voor meer informatie.

Als uw app al aangepaste invoerlogica voor elk platform maakt, kunt u de Windows-specifieke api's voor ruimtelijke invoer gebruiken in de naamruimte UnityEngine.InputSystem.XR . Met deze API's hebt u toegang tot meer informatie, zoals positienauwkeurigheid of brontype, om handen en controllers uit elkaar te houden op HoloLens.

Opmerking

Als u HP Reverb G2-controllers gebruikt, blijven alle invoer-API's werken, behalve InteractionSource.supportsTouchpad, die onwaar retourneert zonder touchpadgegevens.

Grippositie en aanwijzerpositie

Windows Mixed Reality ondersteunt bewegingscontrollers in verschillende vormfactoren. Het ontwerp van elke controller verschilt in de relatie tussen de positie van de hand van de gebruiker en de natuurlijke voorwaartse richting die apps gebruiken voor het aanwijzen van de controller.

Als u deze controllers beter wilt weergeven, kunt u twee soorten poses onderzoeken voor elke interactiebron, greeppositie en aanwijzerpositie. U drukt alle posecoördinaten uit in unity world coördinaten.

Greeppositie

De greeppositie vertegenwoordigt de locatie van de handpalm die is gedetecteerd door een HoloLens of de palm die een bewegingscontroller vasthoudt. Gebruik deze houding op insluitende headsets om de hand van de gebruiker of een object in de hand van de gebruiker weer te geven, zoals een zwaard of pistool.

  • De grippositie is de palmcentid bij het natuurlijk vasthouden van de controller, links of rechts om de positie binnen de grip te centreren.
  • De rechteras van de griporiëntatie is de straal die normaal is voor uw handpalm, vooruit van linkerpalm, achteruit van rechterpalm, wanneer u uw hand volledig opent om een platte vijfvingerhouding te vormen.
  • De vooras van de greepstand is de straal die naar voren wijst door de buis die wordt gevormd door uw niet-duimvingers wanneer u uw hand gedeeltelijk sluit, alsof u de controller vasthoudt.
  • De op-as van de griporiëntatie is de omhoogas die wordt geïmpliceerd door de definities rechts en vooruit.

Krijg toegang tot de greeppositie via de XR van Unity. InputTracking.GetNodeStates-API's , zoals XRNodeState.TryGetPosition of XRNodeState.TryGetRotation.

Aanwijzerpositie

De positie van de aanwijzer vertegenwoordigt de punt van de controller die naar voren wijst. Deze houding kan het beste worden gebruikt om cast te laten wijzen naar de gebruikersinterface wanneer u het controllermodel zelf weergeeft.

De aanwijzerpositie is alleen beschikbaar in Unity via de Windows MR-specifieke API, sourceState.sourcePose.TryGetPosition/Rotation, die wordt InteractionSourceNode.Pointer doorgegeven als het argument.

Zie ook