Guida alla conversione dell'input per UnityInput porting guide for Unity

È possibile trasferire la logica di input in una realtà mista di Windows usando uno dei due approcci.You can port your input logic to Windows Mixed Reality using one of two approaches. Il primo consiste nell'usare le API input. GetButton/getaxis di Unity che si estendono su più piattaforme.The first is to use Unity's general Input.GetButton/GetAxis APIs that span across multiple platforms. Il secondo è la specifica di Windows XR. WSA. API di input, che offrono dati più ricchi in modo specifico per i controller di movimento e le HoloLens.The second is the Windows-specific XR.WSA.Input APIs, which offer richer data specifically for motion controllers and HoloLens hands.

Input generale. GetButton/API getaxisGeneral Input.GetButton/GetAxis APIs

Unity usa attualmente le API input. GetButton/input. getasse generale per esporre l'input per Oculus SDK e OpenVR SDK.Unity currently uses its general Input.GetButton/Input.GetAxis APIs to expose input for the Oculus SDK and the OpenVR SDK. Se le app usano già queste API per l'input, le API input. GetButton/input. getaxis sono i percorsi più semplici per supportare i controller di movimento in realtà mista di Windows.If your apps are already using these APIs for input, the Input.GetButton/Input.GetAxis APIs are the easiest paths for supporting motion controllers in Windows Mixed Reality. È necessario rimappare solo i pulsanti e gli assi nel gestore di input.You'll only need to remap buttons and axes in the Input Manager.

Per altre informazioni, vedere la tabella di mapping degli assi e dei pulsanti di Unity e la Panoramica delle API comuni di Unity.For more information, see the Unity button/axis mapping table and the overview of the common Unity APIs.

XR specifico di Windows. WSA. API di inputWindows-specific XR.WSA.Input APIs

Se l'app crea già una logica di input personalizzata per ogni piattaforma, è possibile usare le API di input spaziali specifiche di Windows nello spazio dei nomi UnityEngine. XR. WSA. input .If your app already builds custom input logic for each platform, you can use the Windows-specific spatial input APIs in the UnityEngine.XR.WSA.Input namespace. Da qui è possibile accedere a informazioni aggiuntive, ad esempio l'accuratezza della posizione o il tipo di origine, in modo da informare le mani e i controller in HoloLens.From there, you access additional information, such as position accuracy or the source kind, letting you tell hands and controllers apart on HoloLens.

Per altre informazioni, vedere la Panoramica delle API UnityEngine. XR. WSA. input.For more information, see the overview of the UnityEngine.XR.WSA.Input APIs.

Posa del grip e puntamentoGrip pose vs. pointing pose

La realtà mista di Windows supporta i controller di movimento in diversi fattori di forma.Windows Mixed Reality supports motion controllers in different form factors. La progettazione di ogni controller differisce dalla propria relazione tra la posizione della mano dell'utente e la direzione naturale "Avanti" che le app devono usare per puntare durante il rendering del controller.Each controller's design differs in its relationship between the user's hand position and the natural "forward" direction that apps should use for pointing when rendering the controller.

Per rappresentare meglio questi controller, esistono due tipi di pose che è possibile esaminare per ogni origine interazione:To better represent these controllers, there are two kinds of poses you can investigate for each interaction source:

  • La posizione del grip, che rappresenta la posizione della Palma di una mano rilevata da un HoloLens o della palma che contiene un controller di movimento.The grip pose, which represents the location of either the palm of a hand detected by a HoloLens, or the palm holding a motion controller.
    • Negli auricolari immersivi è consigliabile usare questa soluzione per eseguire il rendering della mano dell'utente o di un oggetto contenuto nella mano, ad esempio una spada o una pistola.On immersive headsets, this pose is best used to render the user's hand or an object held in the user's hand, such as a sword or gun.
    • Posizione del grip: il centro della palma quando si tiene il controller in modo naturale, regolato a sinistra o a destra per centrare la posizione all'interno del grip.The grip position: The palm centroid when holding the controller naturally, adjusted left or right to center the position within the grip.
    • L' asse destro dell'orientamento del grip: quando si apre completamente la mano per formare una formula a 5 dita piatta, il raggio normale per la Palma (in avanti dal palmo sinistro e viceversa)The grip orientation's Right axis: When you completely open your hand to form a flat 5-finger pose, the ray that is normal to your palm (forward from left palm, backward from right palm)
    • Asse di avanzamento dell'orientamento del grip: quando si chiude parzialmente la mano, come se si tenesse il controller, il raggio che punta "avanza" attraverso il tubo formato dalle dita non Thumb.The grip orientation's Forward axis: When you close your hand partially, as if holding the controller, the ray that points "forward" through the tube formed by your non-thumb fingers.
    • Asse verticale dell'orientamento del grip: l'asse verso l'alto implicato dalle definizioni di destra e di avanzamento.The grip orientation's Up axis: The Up axis implied by the Right and Forward definitions.
    • È possibile accedere al grip con l'API di input tra fornitori di Unity (XR). InputTracking. GetLocalPosition/Rotation) o tramite l'API specifica di Windows (SourceState. SourcePose. TryGetPosition/Rotation, che richiede la richiesta della forma del grip).You can access the grip pose through either Unity's cross-vendor input API (XR.InputTracking.GetLocalPosition/Rotation) or through the Windows-specific API (sourceState.sourcePose.TryGetPosition/Rotation, requesting the Grip pose).
  • Il puntatore che rappresenta il suggerimento del controller che punta in poi.The pointer pose, representing the tip of the controller pointing forward.
    • Questa posizione è particolarmente utilizzata per Raycast quando si punta all'interfaccia utente quando si esegue il rendering del modello di controller.This pose is best used to raycast when pointing at UI when you're rendering the controller model itself.
    • Attualmente, la posa del puntatore è disponibile solo tramite l'API specifica di Windows (sourceState. sourcePose. TryGetPosition/Rotation, che richiede la posa del puntatore).Currently, the pointer pose is available only through the Windows-specific API (sourceState.sourcePose.TryGetPosition/Rotation, requesting the Pointer pose).

Queste coordinate di pose sono tutte espresse in coordinate internazionali di Unity.These pose coordinates are all expressed in Unity world coordinates.

Vedi ancheSee also