Korlátozáskezelő

A megkötéskezelő lehetővé teszi, hogy korlátozott összetevők egy halmazát alkalmazza egy átalakításra. A játékobjektumhoz csatolt típusú összetevők TransformConstraint megfontolhatóak. Alapértelmezés szerint a korlátozáskezelő automatikusan összegyűjti a játékobjektumhoz csatolt összes korlátozott összetevőt, és alkalmazza őket a feldolgozott átalakítások során. A felhasználók azonban dönthetnek úgy, hogy manuálisan konfigurálják az alkalmazott korlátozások listáját, és csak a csatolt korlátozások egy részkészletét engedélyezik.

Jelenleg a következő MRTK UX-elemek támogatják a korlátozáskezelőt:

Vizsgáló tulajdonságai és mezői

A korlátozáskezelő két módban működtethető:

  • Automatikus megkötés kiválasztása
  • Manuális megkötés kiválasztása

Automatikus megkötés kiválasztása

Automatikus kijelölés

A korlátozáskezelő alapértelmezett módja, az automatikus megkötés kiválasztása az összes csatolt megkötési összetevő listáját, valamint a gombokra lépő és a Korlátozás hozzáadása gombot adja meg.

Korlátozás hozzáadása a játékobjektumhoz

Ez a gomb lehetővé teszi, hogy egy megkötési összetevőt közvetlenül a korlátozáskezelő vizsgálóból adtunk hozzá. Itt a projekt összes korlátozástípusának láthatónak kell lennie. További információ: Átalakításkorlátozások.

Ugrás az összetevőre

Az objektumon talált összes korlátozás megjelenik itt az Ugrás az összetevőre gombbal. Ennek a gombnak a hatására a vizsgáló a kiválasztott megkötés összetevőre görget, hogy konfigurálható legyen.

Manuális megkötés kiválasztása

Manuális kijelölés

Ha a korlátozáskezelő manuális módra van beállítva, a rendszer csak a megkötési listában hivatkozott korlátozásokat fogja feldolgozni és alkalmazni az átalakításra. A megjelenő lista csak a felhasználó által kiválasztott korlátozásokat jeleníti meg, valamint a gombokra vagy a bejegyzések eltávolítására vagy hozzáadására vonatkozó beállításokat jeleníti meg. Amikor első alkalommal engedélyezi a manuális módot, a korlátozáskezelő kitölti a listát, amely kiindulási pontként tartalmazza az összes rendelkezésre álló összetevőt a csatolt korlátozott összetevők kiválasztásához.

Bejegyzés eltávolítása

Ezzel eltávolítja a bejegyzést a manuálisan kiválasztott listából. Vegye figyelembe, hogy ez a beállítás nem távolítja el a korlátozott összetevőt a játékobjektumból. A korlátozott összetevőket mindig manuálisan kell eltávolítani, hogy az összetevőre hivatkozó többi összetevő ne legyen véletlenül feltörve.

Bejegyzés hozzáadása

A Bejegyzés hozzáadása legördülő menüben megjelenik az összes olyan elérhető megkötési összetevő, amely még nem szerepel a manuális listában. Ha rákattint valamelyik bejegyzésre, amelyet a rendszer hozzáad a manuális megkötés kiválasztásához, kattintson rá.

Új korlátozás hozzáadása

Ez a beállítás hozzáadja a kiválasztott típusú összetevőt a játékobjektumhoz, és hozzáadja az újonnan létrehozott megkötés összetevőt a manuális megkötések listájához.

Átalakítási korlátozások

A korlátozások valamilyen módon korlátozhatják a manipulációt. Egyes alkalmazások például megkövetelhetik a rotációt, de azt is, hogy az objektum a megfelelő irányú maradjon. Ebben az esetben egy hozzáadható az objektumhoz, és a rotáció RotationAxisConstraint az y tengelyre való korlátozására használható. Az MRTK számos korlátozást tartalmaz, amelyek mindegyikét az alábbiakban ismertetjük.

Új korlátozások is definiálhatóak és használhatók olyan egyedi manipulációs viselkedés létrehozásához, amely egyes alkalmazások esetében szükséges lehet. Ehhez hozzon létre egy szkriptet, amely örököl a osztálytól, és implementálja az absztrakt TransformConstraintConstraintType tulajdonságot és az absztrakt ApplyConstraint metódust. Amikor új megkötést ad hozzá az objektumhoz, a definiált módon kell korlátozza a manipulációt. Ennek az új korlátozásnak a korlátozáskezelő automatikus kiválasztásában vagy a bejegyzés hozzáadása legördülő menüben is meg kell jelenni manuális módban.

Az MRTK által biztosított összes korlátozás a következő tulajdonságokkal rendelkezik:

Kéz típusa

Meghatározza, hogy a korlátozást egy adott, két kézzel vagy mindkét típusú módosításhoz használják-e. Mivel ez a tulajdonság egy jelző, mindkét lehetőség kiválasztható.

  • Egy kézzel adott:Ha be van jelölve, a megkötés az egyik átadott manipuláció során lesz használva.
  • Két fős:Ha be van jelölve, a megkötés két kézzel megadott manipuláció során lesz használva.

Közelségi típus

Meghatározza, hogy a korlátozást közel, távolról vagy mindkét típusú manipulációhoz használják-e. Mivel ez a tulajdonság egy jelző, mindkét lehetőség kiválasztható.

  • Near: A megkötés a közel manipuláció során lesz használva, ha be van jelölve.
  • Távolról:Ha be van jelölve, a megkötés a távoli manipuláció során lesz használva.

FaceUserConstraint

Face-felhasználó megkötése

Ha ez a korlátozás egy objektumhoz van csatolva, a rotáció korlátozott lesz, hogy az objektum mindig a felhasználóval szemben legyen. Ez a be- és panelek számára hasznos. A tulajdonságai FaceUserConstraint a következők:

Face away

Az objektum távolról néz a felhasználó elől, ha igaz.

FixedDistanceConstraint

Korlátozás Rögzített távolságok

Ez a korlátozás javítja a manipulált objektum és egy másik objektum-átalakítás közötti távolságot a manipuláció kezdete során. Ez olyan viselkedéshez hasznos, mint a manipulált objektum és a fej-átalakítás közötti távolság kijavítása. A tulajdonságai FixedDistanceConstraint a következők:

Korlátozás átalakítása

Ez a másik átalakítás, amelytől a manipulált objektum rögzített távolságra lesz. A kamera-átalakítás alapértelmezett beállítása.

KijavítvaRotationToUserConstraint

Rögzített elforgatás

Ez a korlátozás kijavítja a felhasználó és a manipulált objektum közötti relatív rotációt a manipulálás közben. Ez a be- és panelek számára hasznos, mivel biztosítja, hogy a manipulált objektum mindig ugyanazt az arcot jeleníti meg a felhasználó számára, mint a manipuláció kezdetekor. A FixedRotationToUserConstraint nem rendelkezik egyedi tulajdonságokkal.

FixedRotationToWorldConstraint

A világra való rotáció kijavítva

Ez a korlátozás kijavítja a manipulált objektum globális rotációját a manipulálás közben. Ez olyan esetekben lehet hasznos, amikor nem szabad manipulálni a rotációt. A FixedRotationToWorldConstraint nem rendelkezik egyedi tulajdonságokkal:

MaintainApparentSizeConstraint

Látható méret fenntartása

Amikor ez a korlátozás egy objektumhoz van csatolva, függetlenül attól, hogy milyen távol van az objektum a felhasználótól, ugyanaz a látszólagos méret marad fenn a felhasználó számára (azaz a felhasználó látómezője azonos részét veszi fel). Ezzel biztosíthatja, hogy a lap- vagy szövegpanel olvasható maradjon a manipulálás közben. A MaintainApparentSizeConstraint nem rendelkezik egyedi tulajdonságokkal:

MoveAxisConstraint

Megkötés áthelyezési tengelye

Ezzel a korlátozásval kijavítható, hogy egy manipulált objektum tengelye hogyan mozgatható. Ez akkor lehet hasznos, ha objektumokat kell manipulálni egy sík felületén vagy egy vonal mentén. A tulajdonságai MoveAxisConstraint a következők:

A mozgásra vonatkozó korlátozás

Megadja, hogy mely tengelyek ne akadályozzák a mozgást. Alapértelmezés szerint ezek a tengelyek nem helyiek, hanem globálisak lesznek, de ez az alábbiakban módosítható. Mivel ez a tulajdonság egy jelző, számos lehetőség választható.

  • X tengely:Az x tengely mentén való mozgás korlátozott, ha be van jelölve.
  • Y tengely:Az y tengely mentén való mozgás korlátozott, ha be van jelölve.
  • Z tengely:A z tengely mentén való mozgás korlátozott, ha be van jelölve.

Helyi hely használata a korlátozáshoz

A manipulált objektum helyi átalakító tengelyét korlátozza relatívként, ha igaz. Alapértelmezés szerint hamis.

RotationAxisConstraint

Megkötés rotációs tengelye

Ezzel a korlátozásval javítható, hogy a manipulált objektumok melyik tengelye forgatható el. Ez hasznos lehet a manipulált objektumok helyes beállításához, de továbbra is engedélyezi például az y tengely elforgatását. A tulajdonságai RotationAxisConstraint a következők:

A rotáció megkötése

Megadja, hogy mely tengelyek ne fordulnak elő. Alapértelmezés szerint ezek a tengelyek nem helyiek, hanem globálisak lesznek, de ez az alábbiakban módosítható. Mivel ez a tulajdonság egy jelző, számos lehetőség választható.

  • Y tengely:Az y tengely körül elforgatás korlátozott, ha be van jelölve.
  • Z tengely:A z tengely körül elforgatás korlátozott, ha be van jelölve.
  • X tengely:Az x tengely körül elforgatás korlátozott, ha be van jelölve.

Helyi hely használata a korlátozáshoz

A manipulált objektum helyi átalakító tengelyét korlátozza relatívként, ha igaz. Alapértelmezés szerint hamis.

MinMaxScaleConstraint (MinMaxScaleConstraint)

Minimális maximális konstatint

Ez a korlátozás lehetővé teszi a minimális és maximális értékek beállítását a manipulált objektum skálázására. Ez akkor hasznos, ha meg szeretné akadályozni, hogy a felhasználók túl kicsi vagy túl nagy méretű objektumokat skáláznak. A tulajdonságai MinMaxScaleConstraint a következők:

Méretezési minimum

A minimális méretezési érték a manipuláció során.

Maximális skálázás

A maximális méretezési érték a manipuláció során.

A kezdeti állapothoz viszonyítva

Ha igaz, a rendszer a fenti értékeket az objektumok kezdeti méretezéséhez viszonyítva értelmezi. Ellenkező esetben ezek abszolút skálázható értékekként lesznek értelmezve.