HoloLens (1. generációs) Bemenet 211: Kézmozdulat
Fontos
A Mixed Reality Academy oktatóanyagait a HoloLens (1. generációs), a Unity 2017 és a Mixed Reality modern headsetek szem előtt tartásával tervezték. Ezért fontosnak tartjuk, hogy ezeket az oktatóanyagokat megtartsuk azoknak a fejlesztőknek, akik továbbra is útmutatást keresnek az eszközök fejlesztéséhez. Ezek az oktatóanyagok nem frissülnek a legújabb eszközkészletekkel vagy interakciókkal, amelyeket HoloLens 2 használnak, és előfordulhat, hogy nem kompatibilisek a Unity újabb verzióival. A támogatott eszközökön való munka folytatásához megmaradnak. Új oktatóanyag-sorozat jelent meg a HoloLens 2.
A kézmozdulatok működésbe léptetik a felhasználói szándékot. A felhasználók kézmozdulatokkal használhatják a hologramokat. Ebben a kurzusban megtanuljuk, hogyan követheti nyomon a felhasználó kezét, válaszolhat a felhasználói bevitelre, és hogyan küldhet visszajelzést a felhasználónak a kéz állapota és helye alapján.
Az MR Basics 101-ben egy egyszerű érintéses kézmozdulattal kommunikáltunk a hologramokkal. Most lépünk túl a légcsapásos kézmozdulaton, és megismerkedünk az új fogalmakkal:
- Észleli, hogy a felhasználó keze nyomon van követve, és visszajelzést küld a felhasználónak.
- A hologramok elforgatásához használjon navigációs kézmozdulatot.
- Visszajelzés küldése, ha a felhasználó keze ki fog lépni a nézetből.
- Manipulációs események használatával lehetővé teszi a felhasználók számára a hologramok áthelyezését a kezükkel.
Ebben a kurzusban újra megvizsgáljuk a Unity-projekt Model Explorerét, amelyet az MR Input 210-ben építettünk fel. Űrhajós barátunk visszatért, hogy segítsen nekünk az új kézmozdulatokkal kapcsolatos fogalmak feltárásában.
Fontos
Az alábbi fejezetekbe ágyazott videókat a Unity és a Mixed Reality Toolkit régebbi verziójával rögzítettük. Bár a részletes utasítások pontosak és aktuálisak, előfordulhat, hogy a megfelelő videókban elavult szkriptek és vizualizációk jelennek meg. A videók továbbra is szerepelnek az utókor számára, és mivel a tárgyalt fogalmak továbbra is érvényesek.
Eszköztámogatás
Tanfolyam | HoloLens | Modern headsetek |
---|---|---|
MR Bemenet 211: Kézmozdulat | ✔️ | ✔️ |
Előkészületek
Előfeltételek
- A megfelelő eszközökkel konfigurált Windows 10 számítógép.
- Néhány alapvető C#-programozási képesség.
- El kellett volna végeznie az MR Basics 101-et.
- Az MR Input 210-et el kellett volna végeznie.
- Fejlesztésre konfigurált HoloLens-eszköz.
Projektfájlok
- Töltse le a projekthez szükséges fájlokat . A Unity 2017.2-s vagy újabb verziójára van szükség.
- Törölje a fájlok archiválását az asztalra vagy más könnyen elérhető helyre.
Megjegyzés
Ha a letöltés előtt át szeretné tekinteni a forráskódot, az elérhető a GitHubon.
Errata és megjegyzések
- Az "Enable Just My Code" (Csak saját kód engedélyezése) elemet le kell tiltani (nincs bejelölve) a Visual Studióban az Tools-Options-Debugging>> területen ahhoz, hogy töréspontokat találjon a kódban.
0. fejezet – Unity beállítása
Utasítások
- Indítsa el a Unityt.
- Válassza a Megnyitás lehetőséget.
- Lépjen a korábban archiválatlan kézmozdulat mappára.
- Keresse meg és válassza ki a Modellkezelő indítása/ mappát.
- Kattintson a Mappa kiválasztása gombra.
- A Projekt panelen bontsa ki a Jelenetek mappát.
- Kattintson duplán a ModelExplorer jelenetre a Unityben való betöltéséhez.
Épület
- A Unityben válassza a Fájl > buildelési beállításai lehetőséget.
- Ha a Jelenetek/ModelExplorer elem nem szerepel a Jelenetek buildben listában, kattintson a Jelenetek hozzáadása elemre a jelenet hozzáadásához.
- Ha kifejezetten a HoloLenshez fejleszt, állítsa a Céleszköz beállítást HoloLens értékre. Ellenkező esetben hagyja meg bármely eszközön.
- Győződjön meg arról, hogy a build típusaD3D , az SDK pedig a Legújabb telepítve van (amelynek SDK 16299 vagy újabbnak kell lennie).
- Kattintson a Build (Build) gombra.
- Hozzon létre egy "App" nevű új mappát .
- Kattintson egyetlen kattintással az Alkalmazás mappára.
- Nyomja le a Mappa kiválasztása gombot , és a Unity elkezdi felépíteni a projektet a Visual Studióhoz.
Amikor a Unity elkészült, megjelenik egy Fájlkezelő ablak.
- Nyissa meg az Alkalmazás mappát.
- Nyissa meg a ModelExplorer Visual Studio Solution alkalmazást.
Ha a HoloLensben helyezi üzembe a következőt:
- A Visual Studio felső eszköztárának használatával módosítsa a célértéket Hibakeresésről Kiadásra , ARM-ről x86-ra.
- Kattintson a Helyi gép gomb melletti legördülő nyílra, és válassza a Távoli gép lehetőséget.
- Adja meg a HoloLens-eszköz IP-címét , és állítsa a hitelesítési módot univerzális (titkosítatlan protokoll) értékre. Kattintson a Kiválasztás elemre. Ha nem ismeri az eszköz IP-címét, tekintse meg a Beállítások > Hálózat & Internet > speciális beállításai című témakört.
- A felső menüsávon kattintson a Hibakeresés –> Indítás hibakeresés nélkül parancsra, vagy nyomja le a Ctrl + F5 billentyűkombinációt. Ha ez az első üzembe helyezés az eszközön, párosítania kell azt a Visual Studióval.
- Az alkalmazás üzembe helyezésekor egy kijelölési kézmozdulattal zárja be a Fitboxot.
Modern headseten való üzembe helyezés esetén:
- A Visual Studio felső eszköztárának használatával módosítsa a célértéket Hibakeresésről Kiadásra , ARM-ről x64-esre.
- Győződjön meg arról, hogy az üzembehelyezési cél helyi gépre van állítva.
- A felső menüsávon kattintson a Hibakeresés –> Indítás hibakeresés nélkül parancsra, vagy nyomja le a Ctrl + F5 billentyűkombinációt.
- Az alkalmazás üzembe helyezésekor zárja be a Fitboxot úgy, hogy lekérte az eseményindítót egy mozgásvezérlőn.
Megjegyzés
Előfordulhat, hogy piros hibát észlel a Visual Studio-hibák panelen. Nyugodtan figyelmen kívül hagyhatja őket. Váltson a Kimenet panelre a tényleges buildelési folyamat megtekintéséhez. A Kimenet panel hibáinak kijavítása szükséges (leggyakrabban egy szkript hibája okozza őket).
1. fejezet – Kézzel észlelt visszajelzés
Célkitűzések
- Iratkozzon fel a kézkövetési eseményekre.
- A kurzorvisszajelzéssel megjelenítheti a felhasználókat, ha egy kéz nyomon követése történik.
Megjegyzés
A HoloLens 2 a kéz akkor észlelt tüzet, amikor a kéz látható (nem csak akkor, ha egy ujj felfelé mutat).
Utasítások
- A Hierarchia panelen bontsa ki az InputManager objektumot.
- Keresse meg és válassza ki a GesturesInput objektumot.
Az InteractionInputSource.cs szkript a következő lépéseket hajtja végre:
- Feliratkozik az InteractionSourceDetected és az InteractionSourceLost eseményekre.
- Beállítja a HandDetected állapotot.
- Leiratkozik az InteractionSourceDetected és az InteractionSourceLost eseményekről.
Ezután frissítjük a kurzort az MR Input 210-ről egy olyanra, amely a felhasználó műveleteitől függően visszajelzést jelenít meg.
- A Hierarchia panelen jelölje ki a Kurzor objektumot, és törölje azt.
- A Projekt panelen keresse meg a CursorWithFeedback kifejezést, és húzza a Hierarchia panelre.
- Kattintson az InputManager elemre a Hierarchia panelen, majd húzza a CursorWithFeedback objektumot a Hierarchia elemből az InputManager SimpleSinglePointerSelectorKurzor mezőjébe az Inspector alján.
- Kattintson a Hierarchia CursorWithFeedbackelemére.
- Az Inspector panelen bontsa ki a Kurzorállapot adatai elemet az Objektumkurzor szkripten.
A kurzorállapot adatai a következőképpen működnek:
- A Megfigyelési állapot azt jelenti, hogy a rendszer nem észleli a kezét, és a felhasználó egyszerűen körülnéz.
- Bármely interakciós állapot azt jelenti, hogy a rendszer kéz vagy vezérlőt észlel.
- Minden rámutatási állapot azt jelenti, hogy a felhasználó hologramot néz.
Buildelés és üzembe helyezés
- A Unityben használja a Fájlépítési > beállításokat az alkalmazás újraépítéséhez.
- Nyissa meg az Alkalmazás mappát.
- Ha még nincs megnyitva, nyissa meg a ModelExplorer Visual Studio Solution alkalmazást.
- (Ha a telepítés során már elkészítette/üzembe helyezte ezt a projektet a Visual Studióban, akkor megnyithatja a VS adott példányát, és ha a rendszer kéri, kattintson az Összes betöltése elemre.
- A Visual Studióban kattintson a Hibakeresés –> Indítás hibakeresés nélkül parancsra, vagy nyomja le a Ctrl + F5 billentyűkombinációt.
- Miután az alkalmazás üzembe helyezést végzett a HoloLensben, zárja be a fitboxot a levegőbe koppintásos kézmozdulattal.
- Vigye a kezét a nézetbe, és mutasson a mutatóujja az égre a kézkövetés elindításához.
- Mozgassa a kezét balra, jobbra, fel és le.
- Figyelje meg, hogyan változik a kurzor, amikor a kéz észleli, majd elveszik a nézetből.
- Ha magával ragadó headsetet használ, csatlakoztatnia kell és le kell választania a vezérlőt. Ez a visszajelzés kevésbé lesz érdekes egy modern eszközön, mivel a csatlakoztatott vezérlő mindig "elérhető" lesz.
2. fejezet – Navigáció
Célkitűzések
- A Navigációs kézmozdulat eseményekkel elforgathatja az űrhajóst.
Utasítások
Ha navigálási kézmozdulatokat szeretne használni az alkalmazásban, a GestureAction.cs szerkesztésével elforgatjuk az objektumokat a navigációs kézmozdulat használatakor. Emellett visszajelzést adunk a kurzorhoz, hogy megjelenjen, ha elérhető a navigáció.
- A Hierarchia panelen bontsa ki a CursorWithFeedback elemet.
- A Hologramok mappában keresse meg a ScrollFeedback objektumot .
- Húzza a ScrollFeedback előfabját a Hierarchia CursorWithFeedback GameObject elemére.
- Kattintson a CursorWithFeedback elemre.
- Az Inspector panelen kattintson az Összetevő hozzáadása gombra.
- A menübe írja be a keresőmezőbe a CursorFeedback kifejezést. Válassza ki a keresési eredményt.
- Húzza a ScrollFeedback objektumot a hierarchia hierarchiájából a Scroll Detected Game Object tulajdonságra az InspectorKurzorvisszajelzés összetevőjében.
- A Hierarchia panelen válassza az AstroMan objektumot.
- Az Inspector panelen kattintson az Összetevő hozzáadása gombra.
- A menübe írja be a keresőmezőbe a Kézmozdulat művelet kifejezést. Válassza ki a keresési eredményt.
Ezután nyissa meg a GestureAction.cs fájlt a Visual Studióban. A 2.c kódolási gyakorlatban szerkessze a szkriptet a következő műveletek végrehajtásához:
- Az AstroMan objektum elforgatása navigációs kézmozdulat végrehajtásakor.
- Számítsa ki a rotációTevőt az objektumra alkalmazott forgatás mennyiségének szabályozásához.
- Forgassa el az objektumot az y tengely körül, amikor a felhasználó balra vagy jobbra mozgatja a kezét.
Végezze el a 2.c kódolási gyakorlatokat a szkriptben, vagy cserélje le a kódot az alábbi befejezett megoldásra:
using HoloToolkit.Unity.InputModule;
using UnityEngine;
/// <summary>
/// GestureAction performs custom actions based on
/// which gesture is being performed.
/// </summary>
public class GestureAction : MonoBehaviour, INavigationHandler, IManipulationHandler, ISpeechHandler
{
[Tooltip("Rotation max speed controls amount of rotation.")]
[SerializeField]
private float RotationSensitivity = 10.0f;
private bool isNavigationEnabled = true;
public bool IsNavigationEnabled
{
get { return isNavigationEnabled; }
set { isNavigationEnabled = value; }
}
private Vector3 manipulationOriginalPosition = Vector3.zero;
void INavigationHandler.OnNavigationStarted(NavigationEventData eventData)
{
InputManager.Instance.PushModalInputHandler(gameObject);
}
void INavigationHandler.OnNavigationUpdated(NavigationEventData eventData)
{
if (isNavigationEnabled)
{
/* TODO: DEVELOPER CODING EXERCISE 2.c */
// 2.c: Calculate a float rotationFactor based on eventData's NormalizedOffset.x multiplied by RotationSensitivity.
// This will help control the amount of rotation.
float rotationFactor = eventData.NormalizedOffset.x * RotationSensitivity;
// 2.c: transform.Rotate around the Y axis using rotationFactor.
transform.Rotate(new Vector3(0, -1 * rotationFactor, 0));
}
}
void INavigationHandler.OnNavigationCompleted(NavigationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void INavigationHandler.OnNavigationCanceled(NavigationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void IManipulationHandler.OnManipulationStarted(ManipulationEventData eventData)
{
if (!isNavigationEnabled)
{
InputManager.Instance.PushModalInputHandler(gameObject);
manipulationOriginalPosition = transform.position;
}
}
void IManipulationHandler.OnManipulationUpdated(ManipulationEventData eventData)
{
if (!isNavigationEnabled)
{
/* TODO: DEVELOPER CODING EXERCISE 4.a */
// 4.a: Make this transform's position be the manipulationOriginalPosition + eventData.CumulativeDelta
}
}
void IManipulationHandler.OnManipulationCompleted(ManipulationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void IManipulationHandler.OnManipulationCanceled(ManipulationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void ISpeechHandler.OnSpeechKeywordRecognized(SpeechEventData eventData)
{
if (eventData.RecognizedText.Equals("Move Astronaut"))
{
isNavigationEnabled = false;
}
else if (eventData.RecognizedText.Equals("Rotate Astronaut"))
{
isNavigationEnabled = true;
}
else
{
return;
}
eventData.Use();
}
}
Megfigyelheti, hogy a többi navigációs esemény már ki van töltve néhány információval. A GameObject-et az Eszközkészlet InputSystem modális veremébe küldjük, így a felhasználónak nem kell az űrhajósra összpontosítania a forgatás megkezdése után. Ennek megfelelően a kézmozdulat befejezése után leugrik a GameObject elemről.
Buildelés és üzembe helyezés
- Építse újra az alkalmazást a Unityben, majd hozza létre és telepítse a Visual Studióból a HoloLensben való futtatásához.
- Nézze meg az űrhajóst, két nyílnak kell megjelennie a kurzor mindkét oldalán. Ez az új vizualizáció azt jelzi, hogy az űrhajós elforgatható.
- Helyezze a kezét a kész helyzetbe (mutatóujja az ég felé mutat), így a HoloLens elkezdi nyomon követni a kezét.
- Az űrhajós elforgatásához engedje le a mutatóujját egy csippentő pozícióba, majd mozgassa a kezét balra vagy jobbra a NavigationX kézmozdulat elindításához.
3. fejezet – Kézi útmutató
Célkitűzések
- A kézkövetés elvesztésének előrejelzéséhez használja a kézi útmutató pontszámát .
- Visszajelzés küldése a kurzorról annak megjelenítéséhez, hogy a felhasználó keze mikor közeledik a kamera nézetének széléhez.
Utasítások
- A Hierarchia panelen válassza a CursorWithFeedback objektumot.
- Az Inspector panelen kattintson az Összetevő hozzáadása gombra.
- A menüben írja be a keresőmezőbe a Hand Guidance (Útmutató) kifejezést. Válassza ki a keresési eredményt.
- A Projekt panel Hologramok mappájában keresse meg a HandGuidanceFeedback objektumot .
- Húzza a HandGuidanceFeedback objektumot a Hand Guidance Indicator tulajdonságra az Inspector panelen.
Buildelés és üzembe helyezés
- Építse újra az alkalmazást a Unityben, majd hozza létre és telepítse a Visual Studióból az alkalmazást a HoloLensben való használathoz.
- Vigye a kezét a nézetbe, és emelje fel a mutatóujját a nyomon követés érdekében.
- Kezdje el elforgatni az űrhajóst a Navigációs kézmozdulattal (csippentse össze a mutatóujját és a hüvelykujját).
- Mozgassa a kezét balra, jobbra, felfelé és lefelé.
- Ahogy a kéz a kézmozdulat keretének széléhez közeledik, a kurzor mellett egy nyílnak kell megjelennie, amely figyelmezteti, hogy a kézkövetés elveszik. A nyíl jelzi, hogy melyik irányban mozgassa a kezét, hogy ne vesszenek el a nyomkövetések.
4. fejezet – Manipuláció
Célkitűzések
- A Manipulációs események segítségével mozgathatja az űrhajóst a kezével.
- Adjon visszajelzést a kurzorról, hogy a felhasználó tudja, mikor használható a manipuláció.
Utasítások
A GestureManager.cs és az AstronautManager.cs lehetővé teszi számunkra a következőket:
- A "Move Astronaut" (Űrhajós áthelyezése) beszéd kulcsszóval engedélyezheti a manipulációs kézmozdulatokat és az "Űrhajós elforgatását" a letiltásukhoz.
- Váltson a manipulációs kézmozdulat-felismerőre való válaszadásra.
Lássunk neki!
- A Hierarchia panelen hozzon létre egy új üres GameObject elemet. Nevezze el "AstronautManager"-nek.
- Az Inspector panelen kattintson az Összetevő hozzáadása gombra.
- A menübe írja be az Astronaut Manager keresőmezőt. Válassza ki a keresési eredményt.
- Az Inspector panelen kattintson az Összetevő hozzáadása gombra.
- A menübe írja be a szövegbeviteli forrás kifejezést a keresőmezőbe. Válassza ki a keresési eredményt.
Most hozzáadjuk az űrhajós interakciós állapotának szabályozásához szükséges beszédparancsokat.
- Bontsa ki az InspectorKulcsszavak szakaszát.
- Új kulcsszó hozzáadásához kattintson a + jobb oldalon lévő elemre.
- Írja be a kulcsszót áthelyezési űrhajósként. Igény szerint adjon hozzá egy billentyűparancsot.
- Új kulcsszó hozzáadásához kattintson a + jobb oldalon lévő elemre.
- Írja be a kulcsszót az Űrhajós forgatása mezőbe. Igény szerint adjon hozzá egy billentyűparancsot.
- A megfelelő kezelőkód megtalálható a GestureAction.cs fájlban, az ISpeechHandler.OnSpeechKeywordRecognized kezelőben.
Ezután beállítjuk a manipulációs visszajelzést a kurzoron.
- A Projekt panel Hologramok mappájában keresse meg a PathingFeedback objektumot .
- Húzza a PathingFeedback előfabját a HierarchiaCursorWithFeedback objektumára.
- A Hierarchia panelen kattintson a CursorWithFeedback elemre.
- Húzza a PathingFeedback objektumot a hierarchiából az InspectorCursor FeedbackösszetevőJének Pathing Detected Game Object tulajdonságára.
Most hozzá kell adnunk a kódot a GestureAction.cs fájlhoz a következők engedélyezéséhez:
- Adjon hozzá kódot az IManipulationHandler.OnManipulationUpdated függvényhez, amely a manipulációs kézmozdulat észlelésekor áthelyezi az űrhajóst.
- Számítsa ki a mozgásvektort annak meghatározásához, hogy hová kell áthelyezni az űrhajóst a kéz pozíciója alapján.
- Helyezze át az űrhajóst az új pozícióba.
Fejezze be a 4.a kódolási gyakorlatot a GestureAction.cs fájlban, vagy használja az alábbi, befejezett megoldást:
using HoloToolkit.Unity.InputModule;
using UnityEngine;
/// <summary>
/// GestureAction performs custom actions based on
/// which gesture is being performed.
/// </summary>
public class GestureAction : MonoBehaviour, INavigationHandler, IManipulationHandler, ISpeechHandler
{
[Tooltip("Rotation max speed controls amount of rotation.")]
[SerializeField]
private float RotationSensitivity = 10.0f;
private bool isNavigationEnabled = true;
public bool IsNavigationEnabled
{
get { return isNavigationEnabled; }
set { isNavigationEnabled = value; }
}
private Vector3 manipulationOriginalPosition = Vector3.zero;
void INavigationHandler.OnNavigationStarted(NavigationEventData eventData)
{
InputManager.Instance.PushModalInputHandler(gameObject);
}
void INavigationHandler.OnNavigationUpdated(NavigationEventData eventData)
{
if (isNavigationEnabled)
{
/* TODO: DEVELOPER CODING EXERCISE 2.c */
// 2.c: Calculate a float rotationFactor based on eventData's NormalizedOffset.x multiplied by RotationSensitivity.
// This will help control the amount of rotation.
float rotationFactor = eventData.NormalizedOffset.x * RotationSensitivity;
// 2.c: transform.Rotate around the Y axis using rotationFactor.
transform.Rotate(new Vector3(0, -1 * rotationFactor, 0));
}
}
void INavigationHandler.OnNavigationCompleted(NavigationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void INavigationHandler.OnNavigationCanceled(NavigationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void IManipulationHandler.OnManipulationStarted(ManipulationEventData eventData)
{
if (!isNavigationEnabled)
{
InputManager.Instance.PushModalInputHandler(gameObject);
manipulationOriginalPosition = transform.position;
}
}
void IManipulationHandler.OnManipulationUpdated(ManipulationEventData eventData)
{
if (!isNavigationEnabled)
{
/* TODO: DEVELOPER CODING EXERCISE 4.a */
// 4.a: Make this transform's position be the manipulationOriginalPosition + eventData.CumulativeDelta
transform.position = manipulationOriginalPosition + eventData.CumulativeDelta;
}
}
void IManipulationHandler.OnManipulationCompleted(ManipulationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void IManipulationHandler.OnManipulationCanceled(ManipulationEventData eventData)
{
InputManager.Instance.PopModalInputHandler();
}
void ISpeechHandler.OnSpeechKeywordRecognized(SpeechEventData eventData)
{
if (eventData.RecognizedText.Equals("Move Astronaut"))
{
isNavigationEnabled = false;
}
else if (eventData.RecognizedText.Equals("Rotate Astronaut"))
{
isNavigationEnabled = true;
}
else
{
return;
}
eventData.Use();
}
}
Buildelés és üzembe helyezés
- Építse újra a Unityben, majd hozza létre és telepítse a Visual Studióból az alkalmazást a HoloLensben való futtatásához.
- Vigye a kezét a HoloLens elé, és emelje fel a mutatóujját, hogy nyomon követhető legyen.
- Helyezze a kurzort az űrhajósra.
- Mondja az "Űrhajós áthelyezése" parancsot, hogy egy manipulációs kézmozdulattal mozgassa az űrhajóst.
- Négy nyílnak kell megjelennie a kurzor körül, hogy jelezze, hogy a program most reagál a Manipuláció eseményekre.
- Engedje le a mutatóujját a hüvelykujjához, és tartsa őket összecsukva.
- Ahogy mozog a kezed körül, az űrhajós is mozogni fog (ez a Manipuláció).
- Emelje fel a mutatóujját, hogy ne manipulálja az űrhajóst.
- Megjegyzés: Ha a kéz mozgatása előtt nem mondja ki az "Űrhajós áthelyezése" szöveget, akkor a navigációs kézmozdulatot fogja használni.
- Mondja az "Űrhajós elforgatása" parancsot, hogy visszatérjen a forgatható állapotba.
5. fejezet – Modellbővítés
Célkitűzések
- Bontsa ki az Űrhajós modellt több kisebb darabra, amelyekkel a felhasználó kommunikálhat.
- Navigálási és manipulációs kézmozdulatokkal egyenként mozgathatja az egyes darabokat.
Utasítások
Ebben a szakaszban a következő feladatokat hajtjuk végre:
- Adjon hozzá egy új "Modell kibontása" kulcsszót az űrhajós modell kibontásához.
- Adjon hozzá egy új "Modell alaphelyzetbe állítása" kulcsszót, hogy visszaadja a modellt az eredeti formájának.
Ezt úgy fogjuk elvégezni, hogy hozzáadunk még két kulcsszót a Speech Input Source elemhez az előző fejezetből. Bemutatjuk a felismerési események kezelésének egy másik módját is.
- Kattintson vissza az AstronautManager elemre az Inspector területen, és bontsa ki az InspectorKulcsszavak szakaszát.
- Új kulcsszó hozzáadásához kattintson a + jobb oldalon lévő elemre.
- Írja be a kulcsszót a Modell kibontása mezőbe. Igény szerint adjon hozzá egy billentyűparancsot.
- Új kulcsszó hozzáadásához kattintson a + jobb oldalon lévő elemre.
- Írja be a kulcsszót alaphelyzetbe állítási modellként. Igény szerint adjon hozzá egy billentyűparancsot.
- Az Inspector panelen kattintson az Összetevő hozzáadása gombra.
- A menübe írja be a keresőmezőbe a Speech Input Handler kifejezést. Válassza ki a keresési eredményt.
- Ellenőrizze , hogy globális figyelő-e, mivel azt szeretnénk, hogy ezek a parancsok működjenek, függetlenül attól, hogy milyen GameObjectre összpontosítunk.
- Kattintson a + gombra, és válassza a Modell kibontása lehetőséget a Kulcsszó legördülő listában.
- Kattintson a + Válasz területen, és húzza az AstronautManagerhierarchiából a Nincs (Objektum) mezőbe.
- Most kattintson a Nincs függvény legördülő listára, válassza az AstronautManager, majd a ExpandModelCommand lehetőséget.
- Kattintson a Speech Input Handler + gombra, és válassza a Modell alaphelyzetbe állítása lehetőséget a Kulcsszó legördülő listában.
- Kattintson a + Válasz területen, és húzza az AstronautManagerhierarchiából a Nincs (Objektum) mezőbe.
- Most kattintson a Nincs függvény legördülő listára, válassza az AstronautManager, majd a ResetModelCommand lehetőséget.
Buildelés és üzembe helyezés
- Próbálja ki! Az alkalmazást a HoloLensben hozhatja létre és helyezheti üzembe.
- A kiterjesztett űrhajós modell megtekintéséhez mondja a Modell kibontása parancsot.
- A Navigációval elforgathatja az űrhajós öltöny egyes darabjait.
- Mondja ki az Űrhajós áthelyezése parancsot , majd használja a Manipulációt az űrhajós öltöny egyes részeinek mozgatásához.
- Mondja el az Űrhajós forgatása parancsot, hogy ismét elforgatja a darabokat.
- Mondja a Modell alaphelyzetbe állítása parancsot az űrhajós eredeti formájának visszaállításához.
Vége
Gratulálunk! Ezzel befejezte az MR Input 211: Gesture (Kézmozdulat) elemet.
- Tudja, hogyan észlelheti és válaszolhatja meg a kézkövetési, navigációs és manipulációs eseményeket.
- Tisztában van a navigáció és a manipuláció kézmozdulatai közötti különbségekkel.
- Tudja, hogyan módosíthatja a kurzort, hogy vizuális visszajelzést adjon arról, hogy mikor észleli a kezét, mikor veszik el egy kéz, és hogy mikor támogatja egy objektum a különböző interakciókat (navigáció és manipuláció).