Korlátozáskezelő

A korlátozá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

Auto Selection

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 Gombok és a Korlátozás hozzáadása gomb listáját adja meg.

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

Ez a gomb lehetővé teszi, hogy egy megkötési összetevő közvetlenül a korlátozáskezelő vizsgálóból legyen hozzáadva. A projektben minden korlátozástípusnak láthatónak kell lennie. További információért tekintse meg az átalakítási korlátozásokat.

Ugrás az összetevőre

Az objektumra vonatkozó összes korlátozás itt fog szerepelni az Ugrás az összetevőre gombbal. Ennek a gombnak a hatására a vizsgáló a kiválasztott korlátozás összetevőre görget, hogy konfigurálható legyen.

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

Manual Selection

Ha a korlátozáskezelő manuális módra van beállítva, 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 először 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 véletlenül se törhető fel az erre az összetevőre hivatkozó többi összetevő.

Bejegyzés hozzáadása

A Bejegyzés hozzáadása megnyit egy legördülő listát, amely az összes olyan korlátozott összetevőt tartalmazza, amely még nem szerepel a manuális listában. Ha rákattint bármelyik 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 az y tengelyre való elforgatás RotationAxisConstraint korlátozására használható. Az MRTK számos korlátozást biztosít, 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ések létrehozásához, amelyekre egyes alkalmazásoknál szükség lehet. Ehhez hozzon létre egy szkriptet, amely örököl a osztálytól, és implementálja az absztrakt TransformConstraint ConstraintType 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 meg kell jelenni a korlátozáskezelő automatikus kijelölésében vagy a bejegyzés hozzáadása legördülő menüben 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 megkötést egy kézzel, két kézzel vagy mindkét típusú módosítással használják-e. Mivel ez a tulajdonság egy jelző, mindkét lehetőség kiválasztható.

  • Egy leadott: 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ó.

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

FaceUserConstraint

Constraint Face User

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

Ha az objektum igaz, akkor a felhasználó elől elfelé néz.

FixedDistanceConstraint

Constraint Fixed distances

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 lehet 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

Fixed Rotation

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

Fixed rotation to the world

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

Maintain Apparent size

Ha 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őinek azonos részét veszi fel). Ezzel biztosítható, hogy a lap- vagy szövegpanel olvasható maradjon a manipulálás közben. A MaintainApparentSizeConstraint nem rendelkezik egyedi tulajdonságokkal:

MoveAxisConstraint

Constraint Move Axis

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 felszínén vagy egy vonal mentén. A tulajdonságai MoveAxisConstraint a következők:

Mozgásra vonatkozó korlátozás

Megadja, hogy mely tengelyek ne akadályozzák a mozgást. Alapértelmezés szerint ezek a tengelyek globálisak, és nem helyiek, 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: Ha be van jelölve, az y tengely mentén való mozgás korlátozott.
  • Z tengely: A z tengely mentén való mozgás korlátozott, ha be van jelölve.

Helyi hely használata korlátozáshoz

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

RotationAxisConstraint

Constraint Rotation Axis

Ezzel a korlátozásval javítható, hogy a manipulált objektumok melyik tengelye forgatható el. Ez akkor lehet hasznos, ha a manipulált objektumokat függőlegesen tartja, 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óra való korlátozás

Megadja, hogy mely tengelyek ne fordulnak elő. Alapértelmezés szerint ezek a tengelyek nem helyiek, hanem globálisak lesznek, de az alábbiakban módosíthatók. 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 korlátozáshoz

Korlátozza a relatív korlátot a manipulált objektum helyi átalakító tengelyeként, ha igaz. Alapértelmezés szerint hamis.

MinMaxScaleConstraint

Min Max Constatint

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ája számá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:

Skálázás minimuma

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

Maximális skálázás

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

A kezdeti állapothoz viszonyítva

Ha igaz, a fenti értékek az objektumok kezdeti skálázhatóságához viszonyítva lesznek értelmezve. Ellenkező esetben ezek abszolút skálázható értékekként lesznek értelmezve.