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


Objektummanipulátor – MRTK3

Objektummanipulátor

ObjectManipulator lehetővé teszi az objektumok intuitív kezelését 3D térben bármilyen bemeneti eszközzel vagy modalitással. Az XRI-hez XRGrabInteractablehasonló feladatot végez, de további funkciókat és vegyes valóságspecifikus interakciókat kínál. Bár a XRGrabInteractable teljes mértékben kompatibilis a kölcsönhatásban lévőkkel (és az ellenkezője is igaz), továbbra is azt javasoljuk, hogy a megvalósítást a legjobb élmény érdekében használja.

Megjegyzés

ObjectManipulator kifejezetten a 3D objektumok közvetlen és intuitív kezelésére lett kialakítva. Ha gyakori felhasználói felületi interakciókat keres, például csúszkákat vagy gombokat, tekintse meg a csúszkákat és gombokat ismertető cikkeket. ObjectManipulator Kerülje a mikro-interakciók írását.

Architektúra

Az MRTK v2-ben a különböző típusú bemenetekhez tartozó összetett logika és matematikai műveletek nagy részét önmagában ObjectManipulator kezelték. Minden interakciótípushoz külön kódpátot kellett fenntartani, ami kevesebb rugalmasságot eredményezett az új típusú interakciók bevezetésekor. Az MRTK3-ban az interakciós eszköz felel annak sajátosságaiért, hogy egy adott típusú bemenet hogyan lesz lefordítva manipulációvá. Az ObjectManipulator egyszerűen figyeli ezeket az interakciókat, és alkalmazza a megfelelő átalakítást az objektumra. Ennek eredményeképpen ObjectManipulator az MRTK3 jelentősen egyszerűbb és kisebb hatókörű. Tekintse meg az Interactor architektúráját annak leírásáért, hogyan kommunikálnak az interakciós felhasználók a csatolási átalakításokon keresztül.

n-kezes manipulációk

ObjectManipulator támogatja a részt vevő interakciók tetszőleges számát, így általánosítható interakciós viselkedést tesz lehetővé egy, két vagy akár n-kezes manipulációk között. Általában az összes résztvevő interakciós résztvevő csatolásának geometriai centroidjaTransforms a többkezes interakciókhoz használatos. XRI-kompatibilisként kompatibilis minden olyan interakciós típussal, amely megfelelően viselkedő csatolási átalakítást küld.

Ha nem szeretné engedélyezni a többkezes manipulációkat, állítsa az XRI Selection Mode értékét a értékre Single. Ezt a tulajdonságot az ellenőrben a pontosabb névre Multiselect Mode aliasáljuk, hogy elkerüljük az MRTK-val Selection Modevaló összetévesztést, amely azt határozza meg, hogy egy interakciós lehetőség kapcsolható-e (további pontosításért tekintse meg a Gomb dokumentációját).)

Többkijelölési mód

Korlátozások

ObjectManipulator A Constraints API használatával korlátozza a manipulációkat. További információt a Kényszerek dokumentációjában talál.

Manipulációs logikai injektálás

A fejlesztők testre szabhatják a manipulációs viselkedést ObjectManipulator anélkül, hogy alosztályt kellene létrehozniuk, vagy más módon módosítaniuk kellene magát a szkriptet. Egyszerűen írjon egy újat ManipulationLogic<T> , és adja meg a típust az ellenőrben a ManipulationLogicTypes tulajdonsággal.

Hasonlóképpen, a fejlesztők testre szabhatják a simítási viselkedést egy új implementáció ITransformSmoothingLogic megírásával és a tulajdonsággal rendelkező TransformSmoothingLogicType felügyelő típusának megadásával.

Fontos

Ha úgy találja, hogy új manipulációs logikai típusokat ír egy új típusú interakcióhoz vagy beviteli eszközhöz, valószínűleg rossz úton halad. A meglévő manipulációs logikának tetszőleges bemeneti típusokhoz kell működnie, amíg a csatolási átalakítás megfelelően működik. Fontolja meg egy új interakciós elem módosítását vagy írását. A jól viselkedő interakciós logika írásáról az Interactor architektúra dokumentációjában és az Interakciós architektúra dokumentációjában talál további információt.