HoloLens (1. generace) Základy 101: Dokončení projektu se zařízením


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ů.


Tento kurz vás provede kompletním projektem vytvořeným v Unity, který ukazuje základní funkce Windows Mixed Reality na HoloLensu, včetně pohledu, gest, hlasového vstupu, prostorového zvuku a prostorového mapování.

Dokončení kurzu bude trvat přibližně 1 hodinu.

Podpora zařízení

Kurz HoloLens Imerzivní náhlavní soupravy
MR Basics 101: Dokončení projektu se zařízením ✔️

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ě. Název složky ponechte jako Origami.

Poznámka

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

Kapitola 1 - "Holo" svět

V této kapitole nastavíme náš první projekt Unity a projdeme procesem sestavení a nasazení.

Cíle

  • Nastavení Unity pro holografický vývoj
  • Vytvoření hologramu
  • Podívejte se na hologram, který jste vytvořili.

Pokyny

  • Spusťte Unity.
  • Vyberte Otevřít.
  • Jako složku Origami , kterou jste dříve archivovali, zadejte umístění.
  • Vyberte Origami a klikněte na Vybrat složku.
  • Protože projekt Origami neobsahuje scénu, uložte prázdnou výchozí scénu do nového souboru pomocí příkazu Soubor / Uložit scénu jako.
  • Pojmenujte novou scénu Origami a stiskněte tlačítko Uložit .

Nastavení hlavní virtuální kamery

  • Na panelu hierarchie vyberte Hlavní kamera.
  • V inspektoru nastavte jeho transformační pozici na 0,0,0.
  • Najděte vlastnost Clear Flags (Vymazat příznaky ) a změňte rozevírací seznam z Skyboxu na Plnou barvu.
  • Kliknutím na pole Pozadí otevřete výběr barvy.
  • Nastavte R, G, B a A na 0.

Nastavení scény

  • Na panelu hierarchie klikněte na Vytvořit a vytvořit prázdné.
  • Klikněte pravým tlačítkem na nový GameObject a vyberte Přejmenovat. Přejmenujte GameObject na OrigamiCollection.
  • Ve složce Hologramy na panelu projektu (rozbalte Položku Prostředky a vyberte Hologramy nebo poklikejte na složku Hologramy na panelu Projektů):
    • Přetáhněte dílčí fázi do hierarchie, aby byla podřízená funkce OrigamiCollection.
    • Přetáhněte Sphere1 do hierarchie, abyste se mohli stát dítětem OrigamiCollection.
    • Přetáhněte Sphere2 do hierarchie, abyste se mohli stát podřízeným elementem OrigamiCollection.
  • Na panelu hierarchie klikněte pravým tlačítkem na objekt Directional Light (Směrové světlo) a vyberte Delete (Odstranit).
  • Ze složky Hologramy přetáhněte světla do kořenového adresáře panelu hierarchie.
  • V hierarchii vyberte OrigamiCollection.
  • V inspektoru nastavte pozici transformace na 0, -0,5, 2,0.
  • Stisknutím tlačítka Přehrát v Unity zobrazíte náhled hologramů.
  • V okně náhledu byste měli vidět objekty Origami.
  • Stisknutím tlačítka Přehrát podruhé ukončete režim náhledu.

Export projektu z Unity do sady Visual Studio

  • V Unity vyberte Nastavení sestavení souboru>.

  • V seznamu Platformavyberte Univerzální platforma Windows a klikněte na Přepnout platformu.

  • Nastavte SADU SDK na Universal 10 a typ sestavení na D3D.

  • Zkontrolujte projekty Unity C#.

  • Kliknutím na Přidat otevřená scéna scénu přidejte.

  • Klikněte na Sestavit.

  • V zobrazeném okně průzkumníka souborů vytvořte novou složku s názvem "App".

  • Klikněte na složku aplikace.

  • Stiskněte Vybrat složku.

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

  • Otevřete složku Aplikace .

  • Otevřete (poklikejte na) Origami.sln.

  • 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.

  • Klikněte na šipku vedle tlačítka Zařízení a vyberte Vzdálený počítač pro nasazení přes Wi-Fi.

    • Jako Address (Adresa ) nastavte název nebo IP adresu vašeho HoloLensu. Pokud IP adresu svého zařízení neznáte, podívejte se do Nastavení > Sítě & Upřesnit možnosti internetu > nebo se Cortany zeptejte "Hey Cortana, What's my IP address?" (Ahoj Cortano, jaká je moje IP adresa?).
    • Pokud je HoloLens připojený přes USB, můžete místo toho vybrat Device (Zařízení ) a nasadit ho přes USB.
    • Režim ověřování nechte nastavený na Univerzální.
    • Klikněte na Vybrat.
  • Klikněte na Spustit ladění > bez ladění nebo stiskněte ctrl + F5. Pokud se do zařízení nasazuje poprvé, budete ho muset spárovat se sadou Visual Studio.

  • Projekt Origami se teď sestaví, nasadí do HoloLensu a pak spustí.

  • Nasaďte si HoloLens a rozhlédněte se kolem, abyste viděli nové hologramy.

Kapitola 2 - Pohled

V této kapitole představíme první ze tří způsobů interakce s hologramy – pohled.

Cíle

  • Vizualizujte svůj pohled pomocí světově uzamčeného kurzoru.

Pokyny

  • Zpět do projektu Unity, a pokud je okno Nastavení sestavení stále otevřené, zavřete ho.
  • Na panelu Projekt vyberte složku Hologramy.
  • Přetáhněte objekt Kurzor na panel Hierarchie na kořenové úrovni.
  • Poklikejte na objekt Cursor a podívejte se na něj podrobněji.
  • Klikněte pravým tlačítkem na složku Scripts (Skripty ) na panelu Project (Projekt).
  • Klikněte na podnábídku Vytvořit .
  • Vyberte Skript jazyka C#.
  • Pojmenujte skript WorldCursor. Poznámka: V názvu se rozlišují velká a malá písmena. Není nutné přidávat příponu .cs.
  • Na panelu Hierarchie vyberte objekt Kurzor.
  • Přetáhněte skript WorldCursor na panel Inspektor.
  • Poklikáním otevřete skript WorldCursor v sadě Visual Studio.
  • Zkopírujte a vložte tento kód do souboru WorldCursor.cs a Uložit vše.
using UnityEngine;

public class WorldCursor : MonoBehaviour
{
    private MeshRenderer meshRenderer;

    // Use this for initialization
    void Start()
    {
        // Grab the mesh renderer that's on the same object as this script.
        meshRenderer = this.gameObject.GetComponentInChildren<MeshRenderer>();
    }

    // Update is called once per frame
    void Update()
    {
        // Do a raycast into the world based on the user's
        // head position and orientation.
        var headPosition = Camera.main.transform.position;
        var gazeDirection = Camera.main.transform.forward;

        RaycastHit hitInfo;

        if (Physics.Raycast(headPosition, gazeDirection, out hitInfo))
        {
            // If the raycast hit a hologram...
            // Display the cursor mesh.
            meshRenderer.enabled = true;

            // Move the cursor to the point where the raycast hit.
            this.transform.position = hitInfo.point;

            // Rotate the cursor to hug the surface of the hologram.
            this.transform.rotation = Quaternion.FromToRotation(Vector3.up, hitInfo.normal);
        }
        else
        {
            // If the raycast did not hit a hologram, hide the cursor mesh.
            meshRenderer.enabled = false;
        }
    }
}
  • Znovu vytvořte aplikaci z nastavení sestavení souboru>.
  • Vraťte se k řešení sady Visual Studio, které se dříve používalo k nasazení do holoLensu.
  • Po zobrazení výzvy vyberte Znovu načíst vše.
  • Klikněte na Ladit –> Spustit bez ladění nebo stiskněte Ctrl +F5.
  • Teď se porozhlédněte po scéně a všimněte si, jak kurzor komunikuje s tvarem objektů.

Kapitola 3 - Gesta

V této kapitole přidáme podporu pro gesta. Když uživatel vybere papírovou kouli, vytvoříme její pád zapnutím gravitace pomocí fyzikálního modulu Unity.

Cíle

  • Ovládejte hologramy pomocí gesta Vybrat.

Pokyny

Začneme vytvořením skriptu a pak rozpoznáme gesto Vybrat.

  • Ve složce Scripts vytvořte skript s názvem GazeGestureManager.
  • Přetáhněte skript GazeGestureManager do objektu OrigamiCollection v hierarchii.
  • Otevřete skript GazeGestureManager v sadě Visual Studio a přidejte následující kód:
using UnityEngine;
using UnityEngine.XR.WSA.Input;

public class GazeGestureManager : MonoBehaviour
{
    public static GazeGestureManager Instance { get; private set; }

    // Represents the hologram that is currently being gazed at.
    public GameObject FocusedObject { get; private set; }

    GestureRecognizer recognizer;

    // Use this for initialization
    void Awake()
    {
        Instance = this;

        // Set up a GestureRecognizer to detect Select gestures.
        recognizer = new GestureRecognizer();
        recognizer.Tapped += (args) =>
        {
            // Send an OnSelect message to the focused object and its ancestors.
            if (FocusedObject != null)
            {
                FocusedObject.SendMessageUpwards("OnSelect", SendMessageOptions.DontRequireReceiver);
            }
        };
        recognizer.StartCapturingGestures();
    }

    // Update is called once per frame
    void Update()
    {
        // Figure out which hologram is focused this frame.
        GameObject oldFocusObject = FocusedObject;

        // Do a raycast into the world based on the user's
        // head position and orientation.
        var headPosition = Camera.main.transform.position;
        var gazeDirection = Camera.main.transform.forward;

        RaycastHit hitInfo;
        if (Physics.Raycast(headPosition, gazeDirection, out hitInfo))
        {
            // If the raycast hit a hologram, use that as the focused object.
            FocusedObject = hitInfo.collider.gameObject;
        }
        else
        {
            // If the raycast did not hit a hologram, clear the focused object.
            FocusedObject = null;
        }

        // If the focused object changed this frame,
        // start detecting fresh gestures again.
        if (FocusedObject != oldFocusObject)
        {
            recognizer.CancelGestures();
            recognizer.StartCapturingGestures();
        }
    }
}
  • Ve složce Scripts vytvořte další skript, tentokrát s názvem SphereCommands.
  • Rozbalte objekt OrigamiCollection v zobrazení Hierarchie.
  • Přetáhněte skript SphereCommands na objekt Sphere1 na panelu Hierarchie.
  • Přetáhněte skript SphereCommands do objektu Sphere2 na panelu Hierarchie.
  • Otevřete skript v sadě Visual Studio pro úpravy a nahraďte výchozí kód tímto:
using UnityEngine;

public class SphereCommands : MonoBehaviour
{
    // Called by GazeGestureManager when the user performs a Select gesture
    void OnSelect()
    {
        // If the sphere has no Rigidbody component, add one to enable physics.
        if (!this.GetComponent<Rigidbody>())
        {
            var rigidbody = this.gameObject.AddComponent<Rigidbody>();
            rigidbody.collisionDetectionMode = CollisionDetectionMode.Continuous;
        }
    }
}
  • Exportujte, sestavte a nasaďte aplikaci do HoloLensu.
  • Podívej se na jednu z koulí.
  • Proveďte gesto výběru a watch koule na povrch níže.

Kapitola 4 – Hlas

V této kapitole přidáme podporu pro dva hlasové příkazy: "Resetovat svět", aby se vyhozené koule vrátily do původního umístění, a "Drop sphere", aby koule spadla.

Cíle

  • Přidejte hlasové příkazy, které vždy poslouchají na pozadí.
  • Vytvořte hologram, který reaguje na hlasový příkaz.

Pokyny

  • Ve složce Scripts vytvořte skript s názvem SpeechManager.
  • Přetáhněte skript SpeechManager do objektu OrigamiCollection v hierarchii.
  • Otevřete skript SpeechManager v sadě Visual Studio.
  • Zkopírujte a vložte tento kód do souboru SpeechManager.cs a Uložit vše:
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Windows.Speech;

public class SpeechManager : MonoBehaviour
{
    KeywordRecognizer keywordRecognizer = null;
    Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();

    // Use this for initialization
    void Start()
    {
        keywords.Add("Reset world", () =>
        {
            // Call the OnReset method on every descendant object.
            this.BroadcastMessage("OnReset");
        });

        keywords.Add("Drop Sphere", () =>
        {
            var focusObject = GazeGestureManager.Instance.FocusedObject;
            if (focusObject != null)
            {
                // Call the OnDrop method on just the focused object.
                focusObject.SendMessage("OnDrop", SendMessageOptions.DontRequireReceiver);
            }
        });

        // Tell the KeywordRecognizer about our keywords.
        keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());

        // Register a callback for the KeywordRecognizer and start recognizing!
        keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
        keywordRecognizer.Start();
    }

    private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
    {
        System.Action keywordAction;
        if (keywords.TryGetValue(args.text, out keywordAction))
        {
            keywordAction.Invoke();
        }
    }
}
  • Otevřete skript SphereCommands v sadě Visual Studio.
  • Aktualizujte skript tak, aby se četl takto:
using UnityEngine;

public class SphereCommands : MonoBehaviour
{
    Vector3 originalPosition;

    // Use this for initialization
    void Start()
    {
        // Grab the original local position of the sphere when the app starts.
        originalPosition = this.transform.localPosition;
    }

    // Called by GazeGestureManager when the user performs a Select gesture
    void OnSelect()
    {
        // If the sphere has no Rigidbody component, add one to enable physics.
        if (!this.GetComponent<Rigidbody>())
        {
            var rigidbody = this.gameObject.AddComponent<Rigidbody>();
            rigidbody.collisionDetectionMode = CollisionDetectionMode.Continuous;
        }
    }

    // Called by SpeechManager when the user says the "Reset world" command
    void OnReset()
    {
        // If the sphere has a Rigidbody component, remove it to disable physics.
        var rigidbody = this.GetComponent<Rigidbody>();
        if (rigidbody != null)
        {
            rigidbody.isKinematic = true;
            Destroy(rigidbody);
        }

        // Put the sphere back into its original local position.
        this.transform.localPosition = originalPosition;
    }

    // Called by SpeechManager when the user says the "Drop sphere" command
    void OnDrop()
    {
        // Just do the same logic as a Select gesture.
        OnSelect();
    }
}
  • Exportujte, sestavte a nasaďte aplikaci do HoloLensu.
  • Podívejte se na jednu z koulí a řekněte "Drop Sphere".
  • Řekněte "ResetOvat svět", abyste je přivedli zpět na jejich počáteční pozice.

Kapitola 5 - Prostorový zvuk

V této kapitole přidáme do aplikace hudbu a pak aktivujeme zvukové efekty u určitých akcí. Prostorový zvuk použijeme k tomu, abychom zvukům poskytli konkrétní umístění v 3D prostoru.

Cíle

  • Poslechněte si hologramy ve vašem světě.

Pokyny

  • V Unity vyberte v horní nabídce Upravit > nastavení > projektu Zvuk.
  • Na panelu inspektoru na pravé straně najděte nastavení modulu plug-in Spatializer a vyberte MS HRTF Spatializer.
  • Ze složky Holograms na panelu Projekt přetáhněte objekt Ambience do objektu OrigamiCollection v panelu hierarchie.
  • Vyberte OrigamiCollection a na panelu Inspektoru najděte komponentu Zdroj zvuku . Změňte tyto vlastnosti:
    • Zkontrolujte vlastnost Spatialize (Prostorové nastavení).
    • Zkontrolujte možnost Přehrát při probuzení.
    • Změňte prostorovou prolnutí na 3D přetažením posuvníku úplně doprava. Při posouvání posuvníku by se hodnota měla změnit z 0 na 1.
    • Zkontrolujte vlastnost Smyčka .
    • Rozbalte nastavení 3D zvuku a jako Úroveň Doppleru zadejte 0.1.
    • Nastavte možnost Vrácení svazku na logaritmické zavedení.
    • Nastavte maximální vzdálenostna 20.
  • Ve složce Scripts vytvořte skript s názvem SphereSounds.
  • Přetáhněte objekty SphereSounds na objektySphere1 a Sphere2 v hierarchii.
  • Otevřete SphereSounds v sadě Visual Studio, aktualizujte následující kód a uložte vše.
using UnityEngine;

public class SphereSounds : MonoBehaviour
{
    AudioSource impactAudioSource = null;
    AudioSource rollingAudioSource = null;

    bool rolling = false;

    void Start()
    {
        // Add an AudioSource component and set up some defaults
        impactAudioSource = gameObject.AddComponent<AudioSource>();
        impactAudioSource.playOnAwake = false;
        impactAudioSource.spatialize = true;
        impactAudioSource.spatialBlend = 1.0f;
        impactAudioSource.dopplerLevel = 0.0f;
        impactAudioSource.rolloffMode = AudioRolloffMode.Logarithmic;
        impactAudioSource.maxDistance = 20f;

        rollingAudioSource = gameObject.AddComponent<AudioSource>();
        rollingAudioSource.playOnAwake = false;
        rollingAudioSource.spatialize = true;
        rollingAudioSource.spatialBlend = 1.0f;
        rollingAudioSource.dopplerLevel = 0.0f;
        rollingAudioSource.rolloffMode = AudioRolloffMode.Logarithmic;
        rollingAudioSource.maxDistance = 20f;
        rollingAudioSource.loop = true;

        // Load the Sphere sounds from the Resources folder
        impactAudioSource.clip = Resources.Load<AudioClip>("Impact");
        rollingAudioSource.clip = Resources.Load<AudioClip>("Rolling");
    }

    // Occurs when this object starts colliding with another object
    void OnCollisionEnter(Collision collision)
    {
        // Play an impact sound if the sphere impacts strongly enough.
        if (collision.relativeVelocity.magnitude >= 0.1f)
        {
            impactAudioSource.Play();
        }
    }

    // Occurs each frame that this object continues to collide with another object
    void OnCollisionStay(Collision collision)
    {
        Rigidbody rigid = gameObject.GetComponent<Rigidbody>();

        // Play a rolling sound if the sphere is rolling fast enough.
        if (!rolling && rigid.velocity.magnitude >= 0.01f)
        {
            rolling = true;
            rollingAudioSource.Play();
        }
        // Stop the rolling sound if rolling slows down.
        else if (rolling && rigid.velocity.magnitude < 0.01f)
        {
            rolling = false;
            rollingAudioSource.Stop();
        }
    }

    // Occurs when this object stops colliding with another object
    void OnCollisionExit(Collision collision)
    {
        // Stop the rolling sound if the object falls off and stops colliding.
        if (rolling)
        {
            rolling = false;
            impactAudioSource.Stop();
            rollingAudioSource.Stop();
        }
    }
}
  • Uložte skript a vraťte se do Unity.
  • Exportujte, sestavte a nasaďte aplikaci do HoloLensu.
  • Pohybujte se blíž a dál od pódia a otáčením ze strany na stranu uslyšíte, jak se zvuky mění.

Kapitola 6 - Prostorové mapování

Nyní použijeme prostorové mapování k umístění herní desky na skutečný objekt v reálném světě.

Cíle

  • Přeneste svůj skutečný svět do virtuálního světa.
  • Umístěte hologramy tam, kde jsou pro vás nejdůležitější.

Pokyny

  • V Unity klikněte na složku Hologramy na panelu Projekt.
  • Přetáhněte asset spatial mapping do kořenového adresáře hierarchie.
  • Klikněte na objekt Prostorové mapování v hierarchii.
  • Na panelu Inspektor změňte následující vlastnosti:
    • Zaškrtněte políčko Kreslit vizuální sítě .
    • Vyhledejte kreslicí materiál a klikněte na kruh vpravo. Do vyhledávacího pole v horní části zadejte "wireframe". Klikněte na výsledek a zavřete okno. Když to uděláte, hodnota pro Nakreslený materiál by měla být nastavená na Drátový model.
  • Exportujte, sestavte a nasaďte aplikaci do HoloLensu.
  • Při spuštění aplikace bude drátěná síť překrytá váš skutečný svět.
  • Podívejte se, jak se z pódia a na podlahu spadne koule!

Teď vám ukážeme, jak přesunout OrigamiCollection do nového umístění:

  • Ve složce Scripts vytvořte skript s názvem TapToPlaceParent.
  • V hierarchii rozbalte OrigamiCollection a vyberte objekt Stage .
  • Přetáhněte skript TapToPlaceParent do objektu Stage.
  • Otevřete skript TapToPlaceParent v sadě Visual Studio a aktualizujte ho tak, aby byl následující:
using UnityEngine;

public class TapToPlaceParent : MonoBehaviour
{
    bool placing = false;

    // Called by GazeGestureManager when the user performs a Select gesture
    void OnSelect()
    {
        // On each Select gesture, toggle whether the user is in placing mode.
        placing = !placing;

        // If the user is in placing mode, display the spatial mapping mesh.
        if (placing)
        {
            SpatialMapping.Instance.DrawVisualMeshes = true;
        }
        // If the user is not in placing mode, hide the spatial mapping mesh.
        else
        {
            SpatialMapping.Instance.DrawVisualMeshes = false;
        }
    }

    // Update is called once per frame
    void Update()
    {
        // If the user is in placing mode,
        // update the placement to match the user's gaze.

        if (placing)
        {
            // Do a raycast into the world that will only hit the Spatial Mapping mesh.
            var headPosition = Camera.main.transform.position;
            var gazeDirection = Camera.main.transform.forward;

            RaycastHit hitInfo;
            if (Physics.Raycast(headPosition, gazeDirection, out hitInfo,
                30.0f, SpatialMapping.PhysicsRaycastMask))
            {
                // Move this object's parent object to
                // where the raycast hit the Spatial Mapping mesh.
                this.transform.parent.position = hitInfo.point;

                // Rotate this object's parent object to face the user.
                Quaternion toQuat = Camera.main.transform.localRotation;
                toQuat.x = 0;
                toQuat.z = 0;
                this.transform.parent.rotation = toQuat;
            }
        }
    }
}
  • Exportujte, sestavte a nasaďte aplikaci.
  • Teď byste měli mít možnost umístit hru na určité místo tak, že se na ni podíváte, použijete gesto Vybrat, přesunete se na nové místo a znovu použijete gesto Vybrat.

Kapitola 7 - Holografická zábava

Cíle

  • Odhalte vstup do holografického podsvětí.

Pokyny

Teď vám ukážeme, jak odhalit holografické podsvětí:

  • Ze složky Hologramy na panelu projektu:
    • Přetáhněte Underworld do hierarchie, abyste se mohli stát dítětem OrigamiCollection.
  • Ve složce Scripts vytvořte skript s názvem HitTarget.
  • V hierarchii rozbalte OrigamiCollection.
  • Rozbalte objekt Fáze a vyberte cílový objekt (modrý ventilátor).
  • Přetáhněte skript HitTarget na objekt Target .
  • Otevřete skript HitTarget v sadě Visual Studio a aktualizujte ho tak, aby byl následující:
using UnityEngine;

public class HitTarget : MonoBehaviour
{
    // These public fields become settable properties in the Unity editor.
    public GameObject underworld;
    public GameObject objectToHide;

    // Occurs when this object starts colliding with another object
    void OnCollisionEnter(Collision collision)
    {
        // Hide the stage and show the underworld.
        objectToHide.SetActive(false);
        underworld.SetActive(true);

        // Disable Spatial Mapping to let the spheres enter the underworld.
        SpatialMapping.Instance.MappingEnabled = false;
    }
}
  • V Unity vyberte objekt Target .
  • V komponentě Hit Target jsou teď viditelné dvě veřejné vlastnosti, které potřebují odkazovat na objekty v naší scéně:
    • Přetáhněte Underworld z panelu Hierarchie do vlastnosti Underworld v komponentě Cíl hitu .
    • Přetáhněte oblast z panelu Hierarchie do vlastnosti Objekt, který se má skrýt v komponentě Cíl přístupů .
  • Exportujte, sestavte a nasaďte aplikaci.
  • Umístěte kolekci Origami na podlahu a pak pomocí gesta Vybrat udělejte kapku koule.
  • Když koule dopadne na cíl (modrý ventilátor), dojde k explozi. Kolekce bude skrytá a objeví se díra do podsvětí.

Konec

A to je konec tohoto kurzu!

Naučili jste se:

  • Jak vytvořit holografickou aplikaci v Unity.
  • Jak využít pohled, gesta, hlas, zvuk a prostorové mapování.
  • Postup sestavení a nasazení aplikace pomocí sady Visual Studio

Teď jste připraveni začít vytvářet vlastní holografické prostředí!

Viz také