Delen via


Handleiding voor invoeroverdracht voor Unity

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

Algemene API's Input.GetButton en Input.GetAxis

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 het eenvoudigste pad om bewegingscontrollers te ondersteunen in Windows Mixed Reality. U hoeft alleen knoppen en assen opnieuw toe te kennen in Invoerbeheer.

Zie de toewijzingstabel voor Unity-knoppen/as en het overzicht van de Algemene 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 (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 bronsoort, om handen en controllers uit elkaar te houden op HoloLens.

Notitie

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

Griphouding en aanwijzerpositie

Windows Mixed Reality ondersteunt bewegingscontrollers in verschillende vormfactoren. Het ontwerp van elke controller verschilt in de relatie tussen de handpositie van de gebruiker en de natuurlijke voorwaartse richting die apps gebruiken om te wijzen bij het weergeven van de controller.

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

Greephouding

De greeppositie vertegenwoordigt de locatie van de palm van een hand die is gedetecteerd door een HoloLens of de palm die een bewegingscontroller vasthoudt. Gebruik deze houding op immersive 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 handpalm centroid bij het natuurlijke vasthouden van de controller, links of rechts aangepast om de positie binnen de grip te centreren.
  • De rechteras van de griprichting is de straal die normaal is voor je palm, vooruit van linkerpalm, achteruit van rechterpalm, wanneer je je hand volledig opent om een platte houding met vijf vingers te vormen.
  • De vooras van de handgreep 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 omhoog-as van de griprichting is de op-as die wordt geïmpliceerd door de definities rechts en vooruit.

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

Aanwijzerpositie

De aanwijzerpositie vertegenwoordigt de punt van de controller die naar voren wijst. Deze houding kan het beste worden gebruikt om een 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