Sdílet prostřednictvím


HoloLens (1. generace) Vstup 211: Gesto

Důležité

Kurzy Mixed Reality Academy byly navrženy s ohledem na HoloLens (1. generace), Unity 2017 a Mixed Reality Asistivní náhlavní soupravy. Proto se domníváme, že je důležité ponechat tyto kurzy pro vývojáře, kteří stále hledají pokyny při vývoji pro tato zařízení. Tyto kurzy nebudou aktualizovány nejnovějšími sadami nástrojů nebo interakcemi používanými pro HoloLens 2 a nemusí být kompatibilní s novějšími verzemi Unity. Budou zachovány, aby mohly pokračovat v práci na podporovaných zařízeních. Pro HoloLens 2 byla zveřejněny nové série kurzů.

Gesta přeměňují záměr uživatele na akci. Pomocí gest můžou uživatelé pracovat s hologramy. V tomto kurzu se dozvíte, jak sledovat ruce uživatele, reagovat na vstup uživatele a poskytnout uživateli zpětnou vazbu na základě stavu ruky a polohy.

V článku Základy funkce MR 101 jsme k interakci s hologramy použili jednoduché gesto klepnutí ve vzduchu. Teď se posuneme za gesto klepnutí ve vzduchu a prozkoumáme nové koncepty:

  • Zjistěte, kdy je ruka uživatele sledována, a poskytněte uživateli zpětnou vazbu.
  • Pomocí navigačního gesta otočte hologramy.
  • Poskytněte zpětnou vazbu, když se ruka uživatele chystá z pohledu.
  • Události manipulace umožňují uživatelům přesouvat hologramy rukama.

V tomto kurzu se znovu podíváme na Průzkumníka modelů projektu Unity, který jsme vytvořili v MR Input 210. Náš přítel astronautů je zpátky, aby nám pomohl při zkoumání těchto nových konceptů gest.

Důležité

Videa vložená do jednotlivých kapitol níže byla zaznamenána pomocí starší verze Unity a sady Mixed Reality Toolkit. I když jsou podrobné pokyny přesné a aktuální, v odpovídajících videích se můžou zobrazovat skripty a vizuály, které jsou zastaralé. Videa zůstávají zahrnuta pro potomky a protože probírané koncepty stále platí.

Podpora zařízení

Kurz HoloLens Imerzivní náhlavní soupravy
VSTUP MR 211: Gesto ✔️ ✔️

Než začnete

Požadavky

Soubory projektu

  • Stáhněte soubory vyžadované projektem. Vyžaduje Unity 2017.2 nebo novější.
  • Zrušte archivaci souborů na ploše nebo na jiném snadno dostupném místě.

Poznámka

Pokud si chcete před stažením projít zdrojový kód, je k dispozici na GitHubu.

Errata a poznámky

  • Pokud chcete v kódu narazit na zarážky, musí být v sadě Visual Studio v části Tools-Options-Debugging>> zakázaná (nezaškrtnutá možnost Povolit pouze můj kód).

Kapitola 0 – Nastavení Unity

Pokyny

  1. Spusťte Unity.
  2. Vyberte Otevřít.
  3. Přejděte do složky Gesture , kterou jste dříve archivovali.
  4. Vyhledejte a vyberte složku Starting Model Explorer ( Spouští se/Průzkumník modelů ).
  5. Klikněte na tlačítko Vybrat složku .
  6. Na panelu Projekt rozbalte složku Scény .
  7. Poklikejte na scénu ModelExplorer a načtěte ji v Unity.

Sestavování

  1. V Unity vyberte Nastavení sestavení souboru>.
  2. Pokud scene/ModelExplorer není v seznamu Scény v sestavení, klikněte na Přidat otevřené scény a přidejte scénu.
  3. Pokud vyvíjíte speciálně pro HoloLens, nastavte Cílové zařízení na HoloLens. V opačném případě ho ponechte na libovolném zařízení.
  4. Ujistěte se, že je typ sestavení nastavený na D3D a sada SDK je nastavená na Nejnovější nainstalovaná (což by měla být sada SDK 16299 nebo novější).
  5. Klikněte na Sestavit.
  6. Vytvořte novou složku s názvem "App".
  7. Klikněte na složku Aplikace .
  8. Stiskněte Vybrat složku a Unity začne sestavovat projekt pro Visual Studio.

Po dokončení Unity se zobrazí okno Průzkumník souborů.

  1. Otevřete složku Aplikace .
  2. Otevřete řešení ModelExplorer v sadě Visual Studio.

Pokud se nasazuje do HoloLensu:

  1. Pomocí horního panelu nástrojů v sadě Visual Studio změňte cíl z Ladění na Vydání a z ARM na x86.
  2. Klikněte na šipku rozevíracího seznamu vedle tlačítka Místní počítač a vyberte Vzdálený počítač.
  3. Zadejte IP adresu zařízení HoloLens a nastavte Režim ověřování na Universal (Nešifrovaný protokol). Klikněte na Vybrat. Pokud IP adresu zařízení neznáte, podívejte se do části Nastavení > Sítě & Upřesnit možnosti internetu>.
  4. V horním řádku nabídek klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5. Pokud se do zařízení nasazuje poprvé, budete ho muset spárovat se sadou Visual Studio.
  5. Po nasazení aplikace zavřete Fitboxgestem výběru.

Pokud nasazujete do imerzivní náhlavní soupravy:

  1. Pomocí horního panelu nástrojů v sadě Visual Studio změňte cíl z Ladění na Vydání a z ARM na x64.
  2. Ujistěte se, že je cíl nasazení nastavený na Místní počítač.
  3. V horním řádku nabídek klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5.
  4. Po nasazení aplikace zavřete Fitbox stisknutím spouště na ovladači pohybu.

Poznámka

Na panelu Chyby sady Visual Studio si můžete všimnout červených chyb. Je bezpečné je ignorovat. Přepněte na panel Výstup a zobrazte skutečný průběh sestavení. Chyby na panelu Výstup budou vyžadovat opravu (nejčastěji jsou způsobeny chybou ve skriptu).

Kapitola 1 – Zpětná vazba rozpoznaná rukou

Cíle

  • Přihlaste se k odběru událostí sledování rukou.
  • Pomocí zpětné vazby kurzoru můžete uživatelům zobrazit, když je ruka sledována.

Poznámka

Na HoloLens 2 jsou ruce detekovány požáry vždy, když jsou ruce viditelné (nejen když prst ukazuje nahoru).

Pokyny

  • Na panelu Hierarchie rozbalte objekt InputManager .
  • Vyhledejte a vyberte objekt GesturesInput .

Skript InteractionInputSource.cs provede tyto kroky:

  1. Přihlásí se k odběru událostí InteractionSourceDetected a InteractionSourceLost.
  2. Nastaví stav HandDetected.
  3. Odhlásí odběr událostí InteractionSourceDetected a InteractionSourceLost.

Dále upgradujeme kurzor z MR Input 210 na kurzor, který bude zobrazovat zpětnou vazbu v závislosti na akcích uživatele.

  1. Na panelu Hierarchie vyberte objekt Kurzor a odstraňte ho.
  2. Na panelu Projekt vyhledejte CursorWithFeedback a přetáhněte ho na panel Hierarchie .
  3. V panelu Hierarchie klikněte na InputManager a přetáhněte objekt CursorWithFeedback z hierarchie do pole KurzorSimpleSinglePointerSelector v dolní části inspektoru.
  4. V hierarchii klikněte na KurzorWithFeedback.
  5. Na panelu Inspektor rozbalte položku Data stavu kurzoru ve skriptu Kurzor objektu .

Data stavu kurzoru fungují takto:

  • Jakýkoli stav Pozorování znamená, že se nezjistí žádná ruka a uživatel se jednoduše rozhlíží.
  • Jakýkoli stav Interakce znamená, že je zjištěna ruka nebo ovladač.
  • Jakýkoli stav přechodu znamená, že se uživatel dívá na hologram.

Sestavení a nasazení

  • V Unity použijte nastavení sestavení souboru > k opětovnému sestavení aplikace.
  • Otevřete složku Aplikace .
  • Pokud ještě není otevřený, otevřete řešení ModelExplorer sady Visual Studio.
    • (Pokud jste už tento projekt vytvořili nebo nasadili v sadě Visual Studio během nastavování, můžete tuto instanci sady VS otevřít a po zobrazení výzvy kliknout na Znovu načíst vše.)
  • V sadě Visual Studio klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5.
  • Jakmile se aplikace nasadí do HoloLensu, zavřete fitbox pomocí gesta pro klepnutí vzduchem.
  • Přesuňte ruku do zorného pole a najeďte ukazováčkem k obloze, abyste mohli začít sledovat ruce.
  • Posouvejte ruku doleva, doprava, nahoru a dolů.
  • Sledujte, jak se změní kurzor, když je vaše ruka zjištěna a pak ztracena ze zobrazení.
  • Pokud používáte imerzivní náhlavní soupravu, budete muset ovladač připojit a odpojit. Tato zpětná vazba bude na imerzivním zařízení méně zajímavá, protože připojený ovladač bude vždy "k dispozici".

Kapitola 2 - Navigace

Cíle

  • Pomocí událostí navigačních gest můžete astronauta otáčet.

Pokyny

Pokud chceme v naší aplikaci používat navigační gesta, upravíme gesto GestureAction.cs tak, aby se objekty otáčely, když se objeví navigační gesto. Kromě toho přidáme k kurzoru zpětnou vazbu, která se zobrazí, když bude dostupná navigace.

  1. Na panelu Hierarchie rozbalte položku CursorWithFeedback.
  2. Ve složce Holograms najděte asset ScrollFeedback .
  3. Přetáhněte prefab ScrollFeedback na KurzorWithFeedback GameObject v hierarchii.
  4. Klikněte na KurzorWithFeedback.
  5. Na panelu Inspektor klikněte na tlačítko Přidat komponentu .
  6. V nabídce zadejte do vyhledávacího pole CursorFeedback. Vyberte výsledek hledání.
  7. Přetáhněte objekt ScrollFeedback z hierarchie do vlastnosti Scroll Detected Game Object v komponentě Zpětná vazba kurzoru v inspektoru.
  8. Na panelu Hierarchie vyberte objekt AstroMan .
  9. Na panelu Inspektor klikněte na tlačítko Přidat komponentu .
  10. V nabídce zadejte do vyhledávacího pole Akce gesta. Vyberte výsledek hledání.

Potom otevřete Soubor GestureAction.cs v sadě Visual Studio. Ve cvičení kódování 2.c upravte skript tak, aby se chytly následující akce:

  1. Otočte objekt AstroMan při každém provedení navigačního gesta.
  2. Vypočítejte rotationFactor , abyste mohli řídit množství otočení použitého na objekt.
  3. Otočte objekt kolem osy y, když uživatel přesune ruku doleva nebo doprava.

Dokončete kódovací cvičení 2.c ve skriptu nebo nahraďte kód dokončeným řešením níže:

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();
    }
}

Všimněte si, že ostatní navigační události jsou už vyplněné některými informacemi. GameObject nasdílíme do modálního zásobníku InputSystem sady nástrojů, aby se uživatel po zahájení rotace nemusel soustředit na astronauta. Po dokončení gesta vysunutí objektu GameObject vysunutím ze zásobníku.

Sestavení a nasazení

  1. Znovu sestavte aplikaci v Unity a pak ji sestavte a nasaďte ze sady Visual Studio, abyste ji mohli spustit v HoloLensu.
  2. Upřete pohled na astronauta, na obou stranách kurzoru by se měly objevit dvě šipky. Tento nový vizuál indikuje, že je možné astronauta otočit.
  3. Položte ruku do připravené pozice (ukazováček směřující k obloze), aby HoloLens začal vaši ruku sledovat.
  4. Pokud chcete astronauta otočit, spusťte ukazováček na pozici stažení a pak pohybem ruky doleva nebo doprava aktivujte gesto NavigationX.

Kapitola 3 – Pokyny pro ruce

Cíle

  • Pomocí skóre ručních pokynů můžete předpovědět, kdy dojde ke ztrátě sledování rukou.
  • Poskytněte zpětnou vazbu k kurzoru , aby se zobrazilo, když se ruka uživatele přiblíží k okraji pohledu kamery.

Pokyny

  1. Na panelu Hierarchie vyberte objekt CursorWithFeedback .
  2. Na panelu Inspektor klikněte na tlačítko Přidat komponentu .
  3. V nabídce zadejte do vyhledávacího pole Ruční pokyny. Vyberte výsledek hledání.
  4. Ve složce Hologramy panelu projektů najděte asset HandGuidanceFeedback.
  5. Přetáhněte asset HandGuidanceFeedback do vlastnosti Indikátor pokynů ruky na panelu Inspektor .

Sestavení a nasazení

  • Znovu sestavte aplikaci v Unity a pak ji sestavte a nasaďte ze sady Visual Studio, abyste mohli aplikaci používat v HoloLensu.
  • Zobrazte si ruku a zvedněte ukazováček, abyste vás mohli sledovat.
  • Začněte otáčet astronauta pomocí navigačního gesta (sevření ukazováčku a palce k sobě).
  • Posuňte ruku daleko doleva, doprava, nahoru a dolů.
  • Když se vaše ruka blíží k okraji rámečku gest, měla by se vedle kurzoru zobrazit šipka, která vás upozorní, že sledování rukou bude ztraceno. Šipka označuje, kterým směrem se má ruka pohybovat, aby se zabránilo ztrátě sledování.

Kapitola 4 - Manipulace

Cíle

  • Pomocí událostí manipulace můžete pohybovat astronauta rukama.
  • Poskytněte zpětnou vazbu k kurzoru, abyste uživateli dali vědět, kdy je možné použít manipulaci.

Pokyny

GestureManager.cs a AstronautManager.cs nám umožní provádět následující akce:

  1. Pomocí klíčového slova řeči "Move Astronaut" povolte gesta pro manipulaci a pomocí funkce "Otočit astronauta" je zakážete.
  2. Přepněte na reagování na rozpoznávání gest pro manipulaci.

Tak se do toho pusťme.

  1. Na panelu Hierarchie vytvořte nový prázdný objekt GameObject. Pojmenujte ho "AstronautManager".
  2. Na panelu Inspektor klikněte na tlačítko Přidat komponentu .
  3. V nabídce zadejte do vyhledávacího pole Správce astronautů. Vyberte výsledek hledání.
  4. Na panelu Inspektor klikněte na tlačítko Přidat komponentu .
  5. V nabídce zadejte do vyhledávacího pole Speech Input Source. Vyberte výsledek hledání.

Teď přidáme hlasové příkazy potřebné k řízení stavu interakce astronauta.

  1. Rozbalte část Keywords (Klíčová slova ) v inspektoru.
  2. + Kliknutím na tlačítko na pravé straně přidejte nové klíčové slovo.
  3. Zadejte klíčové slovo jako Move Astronaut. V případě potřeby můžete přidat klávesovou zkratku.
  4. + Kliknutím na tlačítko na pravé straně přidejte nové klíčové slovo.
  5. Zadejte klíčové slovo jako Otočit astronauta. V případě potřeby můžete přidat klávesovou zkratku.
  6. Odpovídající kód obslužné rutiny najdete v souboru GestureAction.cs v obslužné rutině ISpeechHandler.OnSpeechKeywordRecognized .

Jak nastavit zdroj vstupu řeči pro kapitolu 4

Dále nastavíme zpětnou vazbu pro manipulaci s kurzorem.

  1. Ve složce Hologramy panelu projektů najděte asset PathingFeedback.
  2. Přetáhněte prefab PathingFeedback do objektu CursorWithFeedback v hierarchii.
  3. Na panelu Hierarchie klikněte na KurzorWithFeedback.
  4. Přetáhněte objekt PathingFeedback z hierarchie do vlastnosti Pathing Detected Game Object v komponentě Zpětná vazba kurzoru v inspektoru.

Teď musíme do Souboru GestureAction.cs přidat kód, abychom povolili následující:

  1. Přidejte kód do funkce IManipulationHandler.OnManipulationUpdated , která přesune astronauta při zjištění gesta manipulace .
  2. Vypočítejte vektor pohybu a určete, kam se má astronaut přesunout na základě pozice ruky.
  3. Přesuňte astronauta na novou pozici.

Dokončete kódovací cvičení 4.a v GestureAction.cs nebo použijte následující dokončené řešení:

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();
    }
}

Sestavení a nasazení

  • Znovu vytvořte v Unity a pak sestavte a nasaďte ze sady Visual Studio, aby se aplikace spustila v HoloLensu.
  • Přesuňte ruku před HoloLens a zvedněte ukazováček, aby bylo možné ji sledovat.
  • Zaměřte kurzor na astronauta.
  • Řekněte "Přesunout astronauta", abyste astronauta přesunuli gestem manipulace.
  • Kolem kurzoru by se měly zobrazit čtyři šipky, které označují, že program bude nyní reagovat na události manipulace.
  • Spusťte ukazováček dolů na palec a držte je přichycené k sobě.
  • Jak budete pohybovat rukou, astronaut se bude pohybovat také (to je manipulace).
  • Zvedněte ukazováček, abyste s astronautem přestali manipulovat.
  • Poznámka: Pokud před pohybem ruky neřeknete "Move Astronaut" (Přesunout astronauta), použije se místo toho navigační gesto.
  • Pokud se chcete vrátit do rotovatelného stavu, vyslovte "Otočit astronauta".

Kapitola 5 – Rozšíření modelu

Cíle

  • Rozbalte model Astronaut na několik menších částí, se kterými může uživatel pracovat.
  • Jednotlivé části můžete přesouvat jednotlivě pomocí navigačních a manipulačních gest.

Pokyny

V této části provedeme následující úlohy:

  1. Přidáním nového klíčového slova "Rozbalit model" rozbalte model astronauta.
  2. Přidejte nové klíčové slovo Resetovat model, které vrátí model do původní podoby.

Provedeme to tak, že do zdroje vstupu řeči přidáme další dvě klíčová slova z předchozí kapitoly. Ukážeme si také další způsob zpracování událostí rozpoznávání.

  1. V inspektoru klikněte zpět na AstronautManager a rozbalte část Klíčová slova v inspektoru.
  2. + Kliknutím na tlačítko na pravé straně přidejte nové klíčové slovo.
  3. Zadejte klíčové slovo jako Rozbalit model. V případě potřeby můžete přidat klávesovou zkratku.
  4. + Kliknutím na tlačítko na pravé straně přidejte nové klíčové slovo.
  5. Jako reset modelu zadejte klíčové slovo. V případě potřeby můžete přidat klávesovou zkratku.
  6. Na panelu Inspektor klikněte na tlačítko Přidat komponentu .
  7. V nabídce zadejte do vyhledávacího pole Obslužná rutina vstupu řeči. Vyberte výsledek hledání.
  8. Zkontrolujte , jestli je globální naslouchací proces, protože chceme, aby tyto příkazy fungovaly bez ohledu na objekt GameObject, na který se zaměřujeme.
  9. Klikněte na + tlačítko a v rozevíracím seznamu Klíčové slovo vyberte Rozbalit model .
  10. Klikněte na položku + v části Odpověď a přetáhněte astronautmanager z hierarchie do pole Žádný (objekt).
  11. Teď klikněte na rozevírací seznam Bez funkce , vyberte AstronautManager a pak RozbalitModelCommand.
  12. Klikněte na tlačítko obslužné rutiny + vstupu řeči a v rozevíracím seznamu Klíčové slovo vyberte Resetovat model .
  13. Klikněte na položku + v části Odpověď a přetáhněte astronautmanager z hierarchie do pole Žádný (objekt).
  14. Teď klikněte na rozevírací seznam Bez funkce , vyberte AstronautManager a pak ResetModelCommand.

Jak nastavit zdroj a obslužnou rutinu vstupu řeči pro kapitolu 5

Sestavení a nasazení

  • Vyzkoušejte si to! Sestavte a nasaďte aplikaci do HoloLensu.
  • Pokud chcete zobrazit rozbalený model astronauta, řekněte Rozbalit model.
  • Pomocí navigace můžete otáčet jednotlivé části skafandru astronautů.
  • Řekněte Přesunout astronauta a pak pomocí manipulace přesuňte jednotlivé části obleku astronauta.
  • Řekněte Otočit astronauta , aby se dílky znovu otočily.
  • Pokud chcete astronauta vrátit do původní podoby, řekněte Resetovat model .

Konec

Gratulujeme! Dokončili jste mr Input 211: Gesto.

  • Víte, jak detekovat události sledování rukou, navigace a manipulace s nimi a reagovat na ně.
  • Rozumíte rozdílu mezi navigačními a manipulačními gesty.
  • Víte, jak změnit kurzor tak, aby poskytoval vizuální zpětnou vazbu pro zjištění ruky, ztrátu ruky a pro to, kdy objekt podporuje různé interakce (navigace vs. manipulace).