Objektummanipulátor – MRTK2

Objektummanipulátor

Az ObjectManipulator a manipulációs viselkedés új összetevője, amelyet korábban a ManipulationHandlerben találtak. Az objektummanipulátor számos fejlesztést és egyszerűsítést végez. Ez az összetevő helyettesíti a manipulációkezelőt, amely elavult lesz.

Az ObjectManipulator szkript egy objektumot mozgathatóvá, méretezhetővé és elforgathatóvá tesz egy vagy két kézzel. Az objektummanipulátor konfigurálható annak szabályozására, hogy az objektum hogyan reagáljon a különböző bemenetekre. A szkriptnek működnie kell a legtöbb interakcióval, például HoloLens 2 csuklós kézzel, HoloLens 2 kézsugarakkal, HoloLens 1 tekintettel és kézmozdulatokkal, valamint magával ragadó headset mozgásvezérlő bemenettel.

Az objektummanipulátor használata

Az objektummanipulátor használatához először adja hozzá a ObjectManipulator szkript összetevőt egy GameObject elemhez. Mindenképpen adjon hozzá egy ütközőt is az objektumhoz, amely megfelel a megragadható határainak.

Ha azt szeretné, hogy az objektum reagáljon a közel tagolt kézi bevitelre, adja hozzá a NearInteractionGrabbable szkriptet is.

A fizikai viselkedés az objektummanipulátor számára engedélyezhető, ha hozzáad egy merevtest-összetevőt az objektumhoz. Ennek az összetevőnek a hozzáadásával engedélyezett fizikai viselkedést részletesebben tárgyaljuk a fizikában és az ütközésekben.

Emellett a manipuláció is korlátozható, ha manipulációs kényszerösszetevőket ad hozzá az objektumhoz. Ezek speciális összetevők, amelyek a manipulációval működnek együtt, és valamilyen módon megváltoztatják a manipulációs viselkedést.

A Manipulációkezelő használata a Unity-szerkesztőben

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

Objektummanipulátor szerkezete

Általános tulajdonságok

Gazdagép átalakítása

A módosítandó objektumátalakítás. Alapértelmezés szerint az összetevő objektuma.

Manipuláció típusa

Meghatározza, hogy az objektum kezelhető-e egy vagy két kézzel. Mivel ez a tulajdonság egy jelölő, mindkét lehetőség kiválasztható.

  • Egykezes: Lehetővé teszi az egykezes manipulációt, ha kiválasztja.
  • Kétkezes: Kétkezes manipulációt tesz lehetővé, ha kiválasztja.

Távoli manipuláció engedélyezése

Meghatározza, hogy a kezelés elvégezhető-e a mutatókkal való távoli interakcióval.

Egykezes manipulációs tulajdonságok

Az egyik kéz elforgatási módja közel van

Meghatározza, hogy az objektum hogyan viselkedjen, amikor az egyik kézzel közel kerül hozzá. Ezek a lehetőségek csak a csuklós kezek esetében működnek.

  • Elforgatás az objektum középpontja körül: Az objektum a kéz elforgatásával, de az objektum középpontja körül forog. Az objektum úgy tűnik, hogy kevesebbet mozog az elforgatáskor, de lehet, hogy a kéz és az objektum közötti kapcsolat megszakadásának érzése van. Hasznosabb a távoli interakciókhoz.
  • Elforgatás a fogópont körül: Forgassa el az objektumot a kezével a hüvelykujj és a mutatóujja közötti fogópont körül. Úgy kell éreznie, mintha az objektumot a kéz tartja.

Egy kéz elforgatási módja messze

Meghatározza, hogy az objektum hogyan viselkedjen, ha egy kézzel, távolról megragadják. Ezek a lehetőségek csak a csuklós kezek esetében működnek.

  • Elforgatás az objektum középpontja körül: Az objektum elforgatása a kéz elforgatásával, de az objektum középpontja körül. Akkor hasznos, ha távolról vizsgál, anélkül, hogy az objektum középpontja elmozdul az objektum elforgatásakor.
  • Forgassa el a fogópont körül: Forgassa el az objektumot a kéz elforgatásával, de a mutató sugarának találati pontjáról. Vizsgálathoz hasznos.

Kétkezes manipulációs tulajdonságok

Kétkezes manipulációs típus

Meghatározza, hogyan alakíthat át két kézi manipuláció egy objektumot. Mivel ez a tulajdonság egy jelölő, tetszőleges számú lehetőség választható ki.

  • Áthelyezés: Az áthelyezés engedélyezett, ha ki van jelölve.
  • Skálázás: A skálázás engedélyezve van, ha ki van választva.
  • Forgatás: A forgatás engedélyezve van, ha ki van választva.

Manipulációkezelő

Korlátozások

Korlátozások engedélyezése

Ez a beállítás engedélyezi a csatolt kényszerkezelőt. Az átalakítás módosításait a kiválasztott kényszerkezelőben regisztrált kényszerek dolgozzák fel.

Kényszerkezelő

A legördülő menüben kiválaszthatja a csatolt kényszerkezelők bármelyikét. Az objektummanipulátor biztosítja, hogy mindig hozzá van kötve egy kényszerkezelő . Vegye figyelembe, hogy az azonos típusú összetevők azonos néven jelennek meg a Unityben. Annak érdekében, hogy könnyebb legyen megkülönböztetni több kényszerkezelőt ugyanazon az objektumon, az elérhető lehetőségek a kiválasztott kényszerkezelő konfigurációjára vonatkozó tippet (manuális vagy automatikus kényszerkiválasztást) mutatnak.

Ugrás az összetevőre

A kényszerkezelő kiválasztásakor megjelenik az Ugrás az összetevőre gomb. Ez a gomb azt eredményezi, hogy az ellenőr görget a kiválasztott összetevőhöz, hogy konfigurálható legyen.

Fizika

Az ebben a szakaszban szereplő beállítások csak akkor jelennek meg, ha az objektum egy RigidBody összetevővel rendelkezik.

Kiadási viselkedés

Adja meg, hogy a módosított objektumok mely fizikai tulajdonságokat őrizze meg a feloldáskor. Mivel ez a tulajdonság egy jelölő, mindkét lehetőség kiválasztható.

  • Sebesség megtartása: Az objektum felszabadításakor, ha ezt a beállítást választja, megtartja a lineáris sebességet.
  • Angular sebesség megtartása: Az objektum felszabadításakor, ha ezt a beállítást választja, megtartja a szögsebességét.

Erők használata a közel manipulációhoz

Azt, hogy fizikai erőket használnak-e az objektum mozgatására, amikor közel manipulációkat hajtanak végre. Ha ezt false (hamis ) értékre állítja, az objektum jobban összekapcsolható lesz a felhasználók kezével. Ha ezt igaz értékre állítja, figyelembe veszi az objektum tömegét és tehetetlenségét, de úgy érezheti, mintha az objektum egy rugón keresztül csatlakozik. Az alapértelmezett érték hamis.

Simítás

Simítás messze

Az, hogy a keretsebességfüggetlen simítás engedélyezve van-e a távoli interakciókhoz. A távoli simítás alapértelmezés szerint engedélyezve van.

Simítás a közelben

Az, hogy a keretsebességfüggetlen simítás engedélyezve van-e a közeli interakciókhoz. A közel simítás alapértelmezés szerint le van tiltva, mert a hatás "leválasztottnak" tekinthető a kézről.

Simítás aktív

Elavult, és egy későbbi verzióban el lesz távolítva. Az alkalmazásoknak SmoothingFar, SmoothingNear vagy a kettő kombinációját kell használniuk.

Lerp idő áthelyezése

A mozgásra alkalmazandó simítás mennyisége. A 0 simítás nem jelent simítást. A maximális érték azt jelenti, hogy nem változik az érték.

Lerp-idő elforgatása

A forgatásra alkalmazandó simítás mennyisége. A 0 simítás nem jelent simítást. A maximális érték azt jelenti, hogy nem változik az érték.

Lerp idő skálázása

A skálára alkalmazandó simítás mennyisége. A 0 simítás azt jelenti, hogy nincs simítás. A maximális érték azt jelenti, hogy nem változik az érték.

Manipulációs események

A manipulációkezelő a következő eseményeket biztosítja:

  • OnManipulationStarted: A manipuláció indításakor aktiválódott.
  • OnManipulationEnded: A manipuláció befejeződésekor aktiválódik.
  • OnHoverStarted: Akkor aktiválódik, ha egy kéz / vezérlő rámutat a módosítható, közel vagy messze.
  • OnHoverEnded: Akkor aktiválódik, ha egy kéz / vezérlő nem rámutat a módosítható, közel vagy messze.

Az esemény tűzparancsa a manipulációhoz a következő:

OnHoverStarted ->OnManipulationStarted ->OnManipulationEnded ->OnHoverEnded

Ha nincs manipuláció, a következő tűzrendelettel továbbra is rámutatási eseményeket kap:

OnHoverStarted ->OnHoverEnded

Fizika és ütközések

A fizikai viselkedést úgy lehet engedélyezni, ha egy merevtest-összetevőt ad hozzá ugyanahhoz az objektumhoz, mint egy objektummanipulátor. Ez nem csak a fenti kiadási viselkedés konfigurálását teszi lehetővé, hanem az ütközéseket is. Merevtest-összetevő nélkül az ütközések nem megfelelően viselkednek a manipuláció során:

  • A manipulált objektum és a statikus ütköző (azaz ütközővel rendelkező, de merevtest nélküli) ütközések nem működnek, a manipulált objektum közvetlenül áthalad a statikus ütközőn.
  • A manipulált objektum és a merevtest (azaz egy ütközővel és egy merevtesttel rendelkező objektum) ütközése esetén a merevtest ütközési választ ad, de a válasz ugratásos és természetellenes. A manipulált objektumon sincs ütközési válasz.

Merev test hozzáadásakor az ütközéseknek megfelelően kell működnie.

Merevtest nélkül

Nincs merev test

Merevtesttel

Merev test

Rugalmas (kísérleti)

A rugalmasságok objektumok objektummanipulátoron keresztüli manipulálásához használhatók. Vegye figyelembe, hogy a rugalmas rendszer még kísérleti állapotban van. A rugalmasságok engedélyezéséhez csatoljon egy meglévő elastics manager-összetevőt, vagy hozzon létre és csatoljon egy új elastics managert a Add Elastics Manager gombon keresztül.

Kötött vezérlőrugalmasságok

Lásd még