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


BoundsControl – MRTK3

Kötött vezérlőelem

A BoundsControl automatikusan méretezhető határolókeretet biztosít, valamint a forgatáshoz és a méretezéshez szükséges módosítási lehetőségeket.

Az MRTK 2.x-ben a BoundsControl főként a ScriptableObjects konfiguráció használatával generált futtatókörnyezetet hozta létre. Az MRTK3-ban a BoundsControl beállítása és testreszabása jelentősen leegyszerűsítve lett. A határvizualizációk és -leírók egyszerűen egy testre szabható előfab, amelyet a BoundsControl példányosít futásidőben. A fejlesztők előre módosíthatják és testre szabhatják a vizualizációkat, vagy akár teljesen új határvizualizációkat is létrehozhatnak. Szabványos határvizualizáció-implementációkat biztosítunk az új Mixed Reality Design Language után.

Az új vizualizációk egyszerűsített vizuális visszajelzést nyújtanak, amely minimálisan tolakodó vizuális zajjal szemlélteti a felhasználó szándékát és manipulálását az objektumon.

Telepítés

Egyszerűen adja hozzá a BoundsControl elemet egy meglévő objektumhoz, és töltse fel a BoundsVisualsPrefab hivatkozást a használni kívánt határvizualizációkkal. Néhány különböző előre elkészített határvizualizációt biztosítunk a használathoz.

Fontos

Határozottan javasoljuk, hogy a fejlesztők hozzáadják a MinMaxScaleConstraint elemet, hogy megakadályozzák, hogy a felhasználó használhatatlanul kis vagy nagy méretűre skálázhassa az objektumot.

A kötött vizualizációk szándékának és fókuszeffektusainak használatához rendelkeznie kell egy StatefulInteractable objektummal. Ha a rendszer nem észleli automatikusan az interakciót, megadhatja a kapcsolatot a BoundsControl vizsgálóban.

Megjegyzés

Azt javasoljuk a fejlesztőknek, hogy a BoundsControl mellett az ObjectManipulatort is használják , hogy a megfizethetőség-alapú manipuláció mellett közvetlen manipulációt is kínáljanak a felhasználóknak. Az ObjectManipulator azoknak a StatefulInteractable rámutatási/fókuszállapot-állapotoknak felelhet meg, amelyekre a kötött vizualizációk válaszolnak.

Kötött vizualizációk előtagjai

Számos előre elkészített határvizualizációt kínálunk a BoundsControl használatához. A fejlesztőknek javasoljuk, hogy készítsenek előregyártott változatokat ezekből a vizualizációkból, és szabják testre őket az igényeiknek megfelelően. A kezelőanimációkat és állapotokat a StateVisualizer működteti, így a fejlesztők tovább szabhatják a megfizethetőség megjelenését és hangulatát.

Elzáródási stílus kezelése

Ezek a kötött vizualizációk egyszerűsített látványtervet kínálnak, és kevesebb zavaró tényezőt biztosítanak a felhasználó számára. Csak a megfelelő fogópontok láthatók a szegélyek szélei mentén. A kötött vizualizációk a felhasználói szándéktól és a kijelölési folyamattól függően szerződést kötnek, kibontják és módosítják a színt/vastagságot. Határozottan javasoljuk, hogy használja ezt a határvizualizációs stílust.

Elzárt fogópontok

Csak szándék

Bizonyos környezetekben a leírók nemkívánatosak lehetnek, és a fejlesztők a kötött vizualizációkat csak a felhasználói szándék kellemes jelzéseként használhatják. Bár ez az előfaboló elvégzi a feladatot, ugyanez a hatás bármely más határvizualizációval is elérhető a HandleType.None kiválasztásával. Azt észleltük, hogy a korlátozott korlátú vizualizációk számos különböző környezetben kielégítő és élvezetes vizuális visszajelzési elemek, nem csak a kezelőalapú manipulációhoz.

Nincsenek fogópontok

Örökölt stílus

Ezek a határvizualizációk a doboz összes fogópontját és élét megjelenítik. Ez jobban megfelel az örökölt tervezési nyelvnek és az MRTK 2.x-ben tapasztalt korábbi viselkedésnek; ez a kialakítás azonban a szükségtelen vizuális zaj miatt zavaróbb lehet a felhasználók számára. Emellett az objektum előtt (és mögött) lévő fogópontok jelenléte problémákat okozhat a közvetett tekintet-csippentés manipulációval. Nem javasoljuk, hogy ezt a stílust használja az új alkalmazásokhoz, különösen azokhoz, akik kihasználják a tekintetes célzás előnyeit.

Hagyományos fogópontok

Interakció tervezése

A jelenlegi iterációban egyszerű aktiválási/deaktiválási interakciót kínálunk. Ha a helyi korlátokra kattint (vagyis kijelöli az objektumot, nem mozgatja, és felengedi), a fogópontok be- és kikapcsolhatók. Az ellenőrzés távolságtűrése a beállítással DragToggleThresholdmódosítható, és maga az aktiválási viselkedés is engedélyezhető/letiltható a ToggleHandlesOnClick tulajdonsággal.

Kötött vezérlőelem váltógombja

A leírók bármikor manuálisan aktiválhatók vagy inaktiválhatók a kódból a beállítással HandlesActive.

Automatikus határszámítás

A BoundsControl automatikusan megkísérli kiszámítani a társított objektum határait. Ha egy adott kötött alakzatot szeretne használni, jelölje be a OverrideBounds beállítást, és adja meg közvetlenül a bounds objektumot. A határszámítási rendszer csak a megadott felülbírálási objektum határértékeit számítja ki.

Ez BoundsCalculationMethod befolyásolja, hogy az algoritmus hogyan számítja ki a határokat. Ha a zárt objektum vizualizációjának alakja nem feltétlenül egyezik meg a ütközővel, vagy az ellenkezője igaz, a fejlesztők módosíthatják a számítási módszert úgy, hogy inkább renderelőt vagy ütköztetőt használjanak, vagy mindkettő kombinációját használják.

A számítási módszertől függetlenül a Padding lehetőség egységesen, világegységekben fogja kiszámolni a határokat. Ha a korlátok simulnak, a lapított tengely nincs kipárnázva.

Összeolvasztás

Egybesimított BoundsControl

A BoundsControl a 2D-s tartalmak manipulálására is használható. Ha FlattenMode a értékre Autovan állítva, a BoundsControl egy 2D téglalap alakú határra simul, ha az objektum megfelelően lapos bármely tengely mentén. Ha az objektum nem elég lapos, de még mindig szeretné a téglalap alakú korlátok megfizethetőség, FlattenMode.Always mindig simítsa a BoundsControl mentén a legvékonyabb tengelyen. Ezzel szemben FlattenMode.Never a BoundsControl nem simul, még akkor is, ha az objektum nagyon vékony.

Kezelési lehetőségek

A BoundsControl manipulációs viselkedése többféleképpen módosítható. A RotateAnchor beállítás azt a kimutatáspontot vezérli, amely körül a BoundsControl forgassa el a forgatókeret használatakor. Egyes objektumok kimutatáspontjai távol vannak a vizualizáció középpontjától, ami kényelmetlenséget és pontatlanságot okozhat a forgatási fogópontokkal való módosításkor. BoundsCenter RotateAnchor A megadása esetén a BoundsControl mindig a számított korlátok geometriai középpontjában forog, nem pedig az objektum tényleges eredete körül.

A skálázási viselkedés a vagy Non Uniforma értékre Uniform állítható be. Egységes módban az objektum minden tengelye össze van skálázva, megőrizve a méretarányt és a megjelenést. A nem egységes skálázás lehetővé teszi, hogy az objektum minden tengelye egymástól függetlenül legyen skálázva.