Gyakorlat – Kézi interakció hozzáadása az ObjectManipulator használatával

Befejeződött

Az ObjectManipulator szkript támogatja a kéz- és mozgásvezérlők bemeneti modelljének közvetlen manipulációs modalitását. Amikor a szkript egy objektumhoz van csatolva, a felhasználó a kezével mozgathatja, méretezheti vagy elforgathatja az objektumot. Ebben a gyakorlatban két kockát hoz létre, csatolja hozzájuk a szükséges szkripteket, majd áthelyezi a kockákat.

Az első kocka hozzáadása és beállítása

  1. A menüsávon válassza a GameObject>3D objektumkocka> lehetőséget.

    Screenshot of menu commands for adding the cube.

    A kocka alapértelmezett mérete egy köbméter, ami túl nagy a célunkhoz. A méretet 20 köbméterre skálázjuk.

  2. Jelölje ki a kockát, majd a Felügyelőben módosítsa a kocka méretezési értékeit az Átalakítás szakaszban a következőre:

    X = 0,2, Y = 0,2, Z = 0,2

    A kockát a (0,0,0) alapértelmezett pozícióban lévő jelenetbe helyezték. Ez azt jelenti, hogy a kocka ugyanabban a helyzetben van, mint a felhasználó headsetje, és a felhasználó addig nem fogja látni a kockát, amíg vissza nem lép. Módosítjuk a kocka pozícióértékeit, hogy jobb helyen lehessen megtekinteni.

  3. A Felügyelőben módosítsa a kocka Pozíció értékeit az Átalakítás szakaszban a következőre:

    X = -0,2, Y = 1,6, Z = 0,5

    Screenshot of the cube's transform component after updates.

    Szeretnénk látni a kocka három oldalát, ezért a kocka forgatását is megváltoztatjuk.

  4. A Felügyelőben módosítsa a kocka forgási értékeit az Átalakítás szakaszban az alábbi értékre:

    X = 9, Y = 14, Z = 0

    Tipp.

    Ha nagyítani szeretné a kockát, jelölje ki, győződjön meg arról, hogy a kurzor a Jelenet ablakra mutat, és nyomja le az F billentyűt. Így bármilyen objektumot nagyíthat.

Szkriptek hozzáadása a kockához

Ahhoz, hogy egy objektum nyomon követett kézzel "megragadható" legyen, három összetevővel kell rendelkeznie:

  • Ütköző összetevő (itt nem kell semmit tennie; A Unity kockája alapértelmezés szerint már rendelkezik egy Box Colliderrel)
  • Objektummanipulátor (szkript) összetevő
  • A Constraint Manager (szkript) összetevő
  1. Ha a kocka továbbra is ki van jelölve, a Felügyelő ablakban válassza az Összetevő hozzáadása gombot, majd keresse meg és válassza ki az Objektummanipulátor szkriptet.

    Screenshot of adding the Object Manipulator script.

    Az Objektummanipulátor szkript egy objektumot mozgathatóvá, méretezhetővé és elforgathatóvá tesz egy vagy két kézzel. Az Objektummanipulátor szkript hozzáadásakor a Kényszerkezelő szkript is automatikusan hozzáadódik, mert az Objektummanipulátor szkript attól függ.

    Screenshot of the Constraint Manager script added to the cube.

A kocka anyagának frissítése

Teljesítmény szempontjából javasoljuk, hogy az alapértelmezett Unity-anyagok helyett használjunk MRTK-anyagokat.

  1. Ha a kocka továbbra is ki van jelölve, keresse meg és bontsa ki a Mesh Renderer összetevő Anyagok szakaszát.
  2. Cserélje le az alapértelmezett anyagot az MRTK Standard Assets Materials alatt található MRTK_Standard_White anyagra>. Ezt úgy teheti meg, hogy az anyagot közvetlenül az Anyagok szakasz Elem mezőjébe húzza

Második kocka hozzáadása

  1. A hierarchiában kattintson a jobb gombbal a kockára, és válassza a Duplikálás lehetőséget. A duplikált kocka kocka (1) néven jelenik meg.

  2. Kattintson a jobb gombbal az eredeti kockára, válassza az Átnevezés lehetőséget, és nevezze el a kockát a kocka közelében.

  3. Kattintson a jobb gombbal a duplikált kockára, válassza az Átnevezés lehetőséget, majd nevezze el a kocka Far Cube nevét.

    Jelenleg úgy tűnik, hogy csak egy kocka van a Jelenet nézetben. Ennek az az oka, hogy a Közeli kocka és a Far Cube ugyanazon a helyen vannak. Változtassuk meg a Far Cube pozícióját és forgását.

  4. Ha a Far Cube továbbra is ki van jelölve, módosítsa az átalakítás összetevő értékeit a következőre:

    Pozíció: X = 0,6, Y = 1,6, Z = 1,1

    Forgatás: X = 27, Y = 0, Z = 0

    Most a kamera kell látnia a közeli kocka a bal oldalon, és a Far Kocka egy kicsit távolabb a jobb oldalon. Ennek megerősítéséhez a hierarchiában válassza a Fő Kamera (az MRTK XR rig> Kamera eltolás területén), majd tekintse meg a Fő Kamera ablakot a Jelenet ablakban.

    Screenshot of the Main Camera view in the Scene window.

    Tipp.

    Ha azt szeretné, hogy a Jelenet ablak nézete jobban hasonlítson a kamera által látottakra, görgessen körül a Jelenet ablakban. Előfordulhat, hogy a kamera jelzőinek törlése skyboxra kell állítania, ha alapértelmezés szerint nem.

A kockák megragadása és áthelyezése Lejátszás módban

  1. Válassza a Lejátszás gombot. Amikor a projekt elkezd játszani, a nézet a Játék ablakra vált.

    Screenshot of the Game window after entering Play mode.

    Feljegyzés

    Lejátszás előtt ellenőrizze, hogy van-e érvényes profilkészlet a Project Gépház> MRTK3 alatt.

  2. Kattintson a Játék ablak jobb felső sarkában található három pont gombra, majd válassza a Teljes méret lehetőséget.

    Screenshot of Maximize command for the Game window.

  3. Nyomja le és tartsa lenyomva a szóközbillentyűt , hogy a szimulált jobb kéz megjelenjen a nézetben.

  4. Helyezze a szimulált kezet közelebb a Közeli kockához, amíg az meg nem érinti a kockát az oldalon vagy az alján.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Kattintson a bal egér gombra (így a kéz "megragadja" a kockát), majd húzza a kockát a jelenet köré.

    Screenshot of Move the cube.

    A Far Cube megragadásához és mozgatásához a szimulált kézhez csatlakoztatott távoli mutatót fogjuk használni.

  6. Ha szükséges, nyomja le és tartsa lenyomva ismét a szóközbillentyűt a szimulált jobb kéz megjelenítéséhez. Jegyezze fel a mutatóujj végétől kezdődő távoli mutatót.

    Screenshot of simulated hand's far pointer.

  7. Vigye közelebb a kezét a Távoli kockához, amíg meg nem jelenik a mutató hegye a kockán. Előfordulhat, hogy néhányszor körkörös mozgásban kell mozgatnia a kezét, hogy a mutató hegye megjelenjen a kockán.

    Screenshot of the far pointer touching the cube.

  8. Kattintson a bal egérgombra (ezzel a kéz közel van, és a "csippentő kézmozdulatnak" hívjuk), majd húzza a kockát a jelenet köré.