Megosztás a következőn keresztül:


Bemeneti portok útmutatója a Unityhez

A bemeneti logikát két módszer egyikével portozhatja Windows Mixed Reality:

General Input.GetButton és Input.GetAxis API-k

A Unity jelenleg az általános Input.GetButton és Input.GetAxis API-kkal teszi közzé az Oculus SDK és az OpenVR SDK bemenetét. Ha az alkalmazások már használják ezeket az API-kat bemenetként, ezek az API-k a legegyszerűbben támogatják a mozgásvezérlőket Windows Mixed Reality. Csak újra kell térképeznie a gombokat és tengelyeket az Input Managerben.

További információt a Unity gomb/tengely leképezési táblázatában és a Common Unity API-k áttekintésében talál.

Fontos

HA HP Reverb G2-vezérlőket használ, további bemeneti leképezési utasításokért lásd: HP Reverb G2-vezérlők a Unityben .

XR bemeneti API-k

A Unity-kiadások megszüntették az XR-t. WSA API-k az XR SDK mellett. Új projektek esetén a legjobb, ha az XR bemeneti API-kat használja a kezdetektől fogva. További információ: Unity XR-bemenet.

Ha az alkalmazás már egyéni bemeneti logikát hoz létre az egyes platformokhoz, használhatja a UnityEngine.InputSystem.XR névtér Windows-specifikus térbeli bemeneti API-jait. Ezekkel az API-kkal további információkhoz férhet hozzá, például a pozíció pontosságához vagy a forrás típusához, így megkülönböztetheti a kezeket és a vezérlőket a HoloLensen.

Megjegyzés

HA HP Reverb G2-vezérlőket használ, az összes bemeneti API továbbra is működik, kivéve a InteractionSource.supportsTouchpad-t, amely hamis értéket ad vissza érintőpad-adatok nélkül.

Markolatos póz és mutató póz

Windows Mixed Reality különböző formában támogatja a mozgásvezérlőket. Az egyes vezérlők kialakítása különbözik a felhasználó kézpozíciója és az alkalmazások által a vezérlő renderelése során használt természetes irány között.

Ezeknek a vezérlőknek a jobb ábrázolása érdekében kétféle pózt vizsgálhat meg minden interakciós forráshoz, a markolat-pózhoz és a mutató pózhoz. A Unity világkoordinátáiban az összes pózkoordinátát kifejezi.

Markolatos póz

A markolatos póz a HoloLens által észlelt tenyér vagy a mozgásvezérlőt tartó tenyér helyét jelöli. A modern headseteken ezzel a pózsal renderelheti a felhasználó kezét vagy a felhasználó kezében tartott objektumot, például kardot vagy fegyvert.

  • A markolat pozíciója a tenyér centroid, amikor a kontrollert természetes módon tartja, balra vagy jobbra igazítva a markolaton belüli pozíció középre állításához.
  • A markolat tájolásának jobb tengelye az a sugár, amely normál a tenyeréhez, a bal tenyértől előre, vissza a jobb tenyértől, amikor teljesen kinyitja a kezét, hogy lapos ötujjas pózt alakítson ki.
  • A markolat tájolásának előre tengelye az a sugár, amely a nem hüvelykujjú ujjak által létrehozott csöven keresztül mutat előre, amikor a kezét részlegesen bezárja, mintha a kontrollert tartja.
  • A fogó tájolás felfelé tengelye a jobb és az előre definiált felfelé tengely.

A markolatot a Unity XR-ével érheti el . InputTracking.GetNodeStates API-k, például XRNodeState.TryGetPosition vagy XRNodeState.TryGetRotation.

Mutató póz

A mutató póz a vezérlő előre mutató csúcsát jelöli. Ezt a pózt legjobban arra használják, hogy a vezérlőmodell renderelésekor a felhasználói felületre mutasson.

A mutató póz csak a Windows MR-specifikus API-val érhető el a Unityben, sourceState.sourcePose.TryGetPosition/Rotationargumentumként átadva InteractionSourceNode.Pointer .

Lásd még