Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A bemeneti logikát két módszer egyikével portozhatja Windows Mixed Reality:
- A Unity általános Input.GetButton vagy Input.GetAxis API-jai, amelyek több platformra is kiterjednek.
- A UnityEngine.XRModule API-k gazdagabb adatokat kínálnak kifejezetten mozgásvezérlők és HoloLens-kezek számára.
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/Rotation
argumentumként átadva InteractionSourceNode.Pointer
.